如何在usercontrol处于活动状态时使上下文菜单不可选

时间:2010-09-08 07:23:30

标签: c# winforms treeview

当我右键单击树视图的节点时,我显示了一个上下文菜单。假设我的树视图如下

根     | - > some.txt        | - >孩子(对于some.txt)           | - > Child1(儿童的孩子)

如果我右键单击Child1,我将有一个AddNew选项。如果用户选择我将显示面板中显示的用户的用户控制表单。

我需要的是,如果用户选择选项为Child1并且用户控件处于活动状态,并且当用户再次右键单击Child1时,我想将上下文菜单设置为不可选字段。可以告诉我该怎么做。

2 个答案:

答案 0 :(得分:1)

可以在ContextMenu的Opening事件中完成对ContextMenu项目的可选择性的任何修改,具体取决于场景。

•确保您有办法确定用户控件是否可见(标记,可见性,检查!= null ......适用于您的情况)

•为contextmenu定义一个开放处理程序

•在开场处理程序中,检查控件是否可见(参见第1点)

•如果是,请将菜单项的启用状态设置为false,否则设置为true。

HTH

答案 1 :(得分:0)

您是否正在使用Winforms树视图或Asp.net树视图进行任何第三方用户控制?无论如何,您应该将UserId存储在usercontrol中的某个位置。 因此,当用户单击子节点时,检查节点的UserId和usercontrol中的UserId是否相同。 如果匹配则禁用该选项。

如果上述解决方法不能解决问题,请退回来。