我对winform有树视图控制,需要为它实现onChange事件。但是,看起来它没有,只有onChangeUI。
如果树视图不支持onChange事件,它在.NET中的等价物。
我搜索过MSDN Library但没有找到任何信息。
更新:备注我正在为.net转换win32程序。
提前致谢,
答案 0 :(得分:3)
在Windows窗体TreeView控件中,对选择更改的支持有点受限。
基本上,有一对事件(BeforeSelect和AfterSelect)允许您在选择树节点时做出反应。 BeforeSelect
允许您取消新选择,AfterSelect
不允许(因为它在提交新选择后发生)。
但是,当取消选择节点时,不会触发这些事件。要检测该情况,您必须处理通用MouseUp事件并检查所单击节点的IsSelected属性以获取实际选择状态。
答案 1 :(得分:1)
这是包装本机Windows控件的包装类中的常见限制。这只会为您无法了解的内容生成通知。像用户可以做的任何事情一样影响控件。它忽略了你所做事情的通知,其基本理念是你不必提醒你已经知道的事情。
TreeView当然是这种情况,用户无法添加任何节点。只有你可以。节点中显示的文本也是如此。没有事件告诉你文本改变了。除非在用户编辑节点的非常具体的情况下,AfterLabelEdit事件。
您可以从TreeView派生自己的类,并添加一个Change事件和触发它的OnChange()方法。您可以编写代码来调用该方法。请注意,这很难做到,TreeNodeCollection类没有虚拟方法,因此您无法覆盖它们以检测更改节点的客户端代码。实际上,最好不要编写代码,只需在修改TreeView内容的任何方法中生成表单中的内部事件。