请教有关几个控件或菜单相互联系的问题

时间:2022-03-20 18:03:48
我在做一个GIS系统,遇到一个问题如下:
  我的系统有许多具有相同功能的控件事件和菜单事件,就是这几个控件和菜单控制相同的功能,我怎样才能让一个控件事件发生,而其它的控件和菜单自动被按下或被选中。如我的菜单中有“选点”的条目,而在浮动的工具条中也有个按钮也是“选点”的功能,我怎样才能点击菜单上的“选点”后,浮动工具条中的按钮也自动被按下。
  不要在其中一个里面添加另一个事件的方法,那样不太好。因为我有好多类似的控件和菜单有同样的功能,有没有个好的方法,可以解决这个问题呢

13 个解决方案

#1


1。写个用户控件,包括控件和菜单,它们事件的相互的对应关系在用户控件里实现。
2。在包含这些控件的页里也可以实现,写个方法专门检查并设置控件之间的对应关系的,在每个控件的事件中调用这个方法。

#2


up

#3


自己做个类吧

#4


应该没有什么便捷的办法

只能在事件里控制了

#5


gshope(北京.Net) 朋友能不能给点例子或代码呢

#6


封装成函数,然后在菜单事件和控件事件中调用相同的函数不就行了吗?

#7


调用这个方法的时候,设置菜单和控件

#8


那样我得写多少代码呀

#9


提议以 observer pattern为基础做下去,可以看下 GOF的《design patterns》

#10


可以利用控件的tag属性,例如:


// 功能实现代码写在菜单项里

Button button = new Button();
button.tag = this.mnuItem;   // 菜单项

OnButtonClick()
{
   MenuItem item = (MenuItem) button.tag;
   item.PerformClick();
}


我也没测试,大概是利用tag属性和PerformClick方法来实现的,你试试看吧!

#11


up

#12


up

#13


up

#1


1。写个用户控件,包括控件和菜单,它们事件的相互的对应关系在用户控件里实现。
2。在包含这些控件的页里也可以实现,写个方法专门检查并设置控件之间的对应关系的,在每个控件的事件中调用这个方法。

#2


up

#3


自己做个类吧

#4


应该没有什么便捷的办法

只能在事件里控制了

#5


gshope(北京.Net) 朋友能不能给点例子或代码呢

#6


封装成函数,然后在菜单事件和控件事件中调用相同的函数不就行了吗?

#7


调用这个方法的时候,设置菜单和控件

#8


那样我得写多少代码呀

#9


提议以 observer pattern为基础做下去,可以看下 GOF的《design patterns》

#10


可以利用控件的tag属性,例如:


// 功能实现代码写在菜单项里

Button button = new Button();
button.tag = this.mnuItem;   // 菜单项

OnButtonClick()
{
   MenuItem item = (MenuItem) button.tag;
   item.PerformClick();
}


我也没测试,大概是利用tag属性和PerformClick方法来实现的,你试试看吧!

#11


up

#12


up

#13


up