如何在WinForms TreeView项目被清除时获取事件

时间:2011-07-06 10:25:40

标签: winforms events treeview

我在WinForms应用程序中使用标准的TreeView,除了一个问题外,一切正常:

系统的某些部分需要根据所选的TreeNode进行更改,使用AfterSelect事件可以正常工作。

但是,有时TreeView将被完全清除,导致空选择不会触发此事件。 在momemnt我手动调用事件回调来解决这个问题。

这显然是危险的,因为我会忘记在某处调用此函数。有没有“正确”的方法来做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:0)

这是设计的。底层的本机Windows控件仅为您自己无法弄清楚的内容生成通知。例如,ListBox控件没有任何事件告诉您添加或删除了项目。这是因为用户无法添加或删除项目。同样,用户无法从树视图中删除节点。

这些类型的更改需要您编写的代码。由于它是您的代码,您不能不知道这些更改发生了。如果你想要一个活动,那么你必须自己提高。请注意,这比它看起来更难,TreeNodeCollection类不能可靠地让您生成用于对节点集合进行编程更改的事件。它的行为与ObservableCollection不同。不需要这个活动,你肯定会更好。