以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]单击菜单组件函数问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93723) |
-- 作者:pcxjxjhkw -- 发布时间:2016/12/5 16:45:00 -- [求助]单击菜单组件函数问题 如何写一函数: 单击菜单上任意一组件,返回该组件的上一级,直至最顶级。如单击【打开】,返回:主菜单\\功能区\\功能组\\...\\...\\打开。有可能是多级组合按钮。
谢 [此贴子已经被作者于2016/12/7 13:20:41编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/12/5 17:22:00 -- Dim r As object = BaseMainForm.controls("C1Ribbon1") Dim mu = r.Tabs("Common").Groups("Data").Items("AddRow").Items("AddRow") Output.Show(mu.text) Output.Show(mu.Parent.text) Output.Show(mu.Parent.parent.text) Output.Show(mu.Parent.parent.Tab.text)
|
-- 作者:pcxjxjhkw -- 发布时间:2016/12/5 19:09:00 -- 以下是引用有点蓝在2016/12/5 17:22:00的发言:
Dim r As object = BaseMainForm.controls("C1Ribbon1")
Dim mu = r.Tabs("Common").Groups("Data").Items("AddRow").Items("AddRow")
Output.Show(mu.text)
Output.Show(mu.Parent.text)
Output.Show(mu.Parent.parent.text)
Output.Show(mu.Parent.parent.Tab.text) 1.r的级数不确定哟,如何判断已返回到最高一级tab? 2.如何将Sender写入函数中? 3.单击的可能是功能区、程序菜单、快速访问栏、配置栏、上工具栏、下工具栏、快捷菜单中的某一组件,也可能是一窗口中的组件,如何判断所单击的组件属于哪一类?
谢谢了 [此贴子已经被作者于2016/12/5 19:37:29编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/12/5 20:37:00 -- 很麻烦,菜单事件里没有办法获取当前菜单层次,只能靠递归所有菜单进行判断,可以参考下这个 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=52013 |
-- 作者:pcxjxjhkw -- 发布时间:2016/12/5 23:28:00 -- Dim e As Object = Args(0) \'\'\'单击的菜单组件 Do While a Is Nothing
|
-- 作者:有点蓝 -- 发布时间:2016/12/6 9:19:00 -- 菜单事件没有Parent的,只能按4楼方法解决 |
-- 作者:pcxjxjhkw -- 发布时间:2016/12/6 9:23:00 -- 或者,狐爸给每个组件一个唯一ID |
-- 作者:有点色 -- 发布时间:2016/12/6 10:04:00 -- 以下是引用pcxjxjhkw在2016/12/6 9:23:00的发言:
或者,狐爸给每个组件一个唯一ID
你命名规范不就好了。各种控件,命名为对应的层级关系,如 功能区1_功能组2_某某控件 |
-- 作者:pcxjxjhkw -- 发布时间:2016/12/6 10:09:00 -- 以下是引用有点色在2016/12/6 10:04:00的发言:
你命名规范不就好了。各种控件,命名为对应的层级关系,如 功能区1_功能组2_某某控件 也有弊病,改动一处,就要全部改动。
最好有Parent属性。
|
-- 作者:pcxjxjhkw -- 发布时间:2016/12/6 10:58:00 -- 各位老师,问题还没解决呀! |