也许是很棘手的菜单问题

superjinus 2003-11-16 03:26:44
我们知道菜单有onclick事件,现在我想要在click事件中load该菜单项的子菜单,却不好用,为什么?
Private Sub a_Click()
Load b(0) ' b 是子菜单,a是主菜单
Load b(1)
End Sub
...全文
18 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
superjinus 2003-11-20
  • 打赏
  • 举报
回复
我需要在响应Menu Click 事件后显示,上面的方法不好用.
xzp1030 2003-11-16
  • 打赏
  • 举报
回复
菜单项的动态装入

菜单项的动态装入是指菜单项的个数不固定. 例子就是文件菜单中最近打开的文件的列表。在第一次打开文件之前,该列表是空的,并且不在文件菜单中出现;打开一个文件后,该列表不再是空的,并且文件菜单中出现代表被打开文件的菜单项。

具体的实现过程如下:

在文件菜单里增加一个菜单项,标题任意,并假设菜单项的Name属性是opened_files_ list;

更改菜单项opened_files_list的可见属性,使 opened_files_list.Visible=False

更改菜单项opened_files_list的下标属性,使 opened_files_list.Index=0

在程序中控制菜单项opened_files_list的动态装入。

 假设要显示打开过的第二个文件的文件名,并且该文件名存放在一个文件名数组opened _file_name里。以下的代码就实现了这一功能:

Load opened_files_list(1)

opened_files_list(1).Caption="&2"+opened_file_name(1)

opened_files_list(1).Visible=True

 需要注意的是,对于下标为0的菜单项,不能用Load方法。因为在程序执行时,该菜单项就 已经被装入到内存里了;另外,在菜单项的标题属性字符里的"&"字符具有特殊的含义,它的作 用是在显示该属性字符串的同时,并不显示"&"本身,而紧跟"&"的字符在显示时具有下划线, 并且该字符成为热键。

  如果下标不为0的菜单项不再需要,为了减少对内存资源的占用,可以用Unload方法把它 从内存卸出;同样地,不能用Unload卸出下标为0的菜单项。
kimurakenshin 2003-11-16
  • 打赏
  • 举报
回复
用条件语句,把你的条件都列出来,一个一个的对应菜单事件.把它们.visible设置成true或false.
superjinus 2003-11-16
  • 打赏
  • 举报
回复
我的菜单必须是动态的,而且不同时间菜单中内容不同,不是隐藏可以解决的.
programkitty 2003-11-16
  • 打赏
  • 举报
回复
为什么要这样做,如果只是想让用户在单击主菜单才时看到子菜单,可以用隐藏,等用户单击时才逐一显示这些菜单不就行啦!

7,732

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧