为什么没有Windows.Forms.TreeView的SelectedNodeChanged事件?

I. *_*edy 40 .net c# treeview winforms

System.Web.UI.WebControls.TreeView类提供此事件,但TreeView的Forms版本不提供此事件.形式世界中的等价物是什么?我正在使用AfterSelect,但它似乎不太正确.也许它实际上是我正在寻找但文档有点模糊.

Pav*_*aev 38

WinForms TreeView中没有.为TreeView.AfterSelect引用MSDN :

取消选择节点时不会发生此事件.要检测此事件,请处理Control.MouseUp事件并测试TreeNode.IsSelected属性.

是的,这很糟糕.

  • Control.MouseUp?他们一定是在开玩笑.如果树正在用键而不是鼠标导航怎么办? (14认同)

SLa*_*aks 10

使用没有任何问题AfterSelect.

但是请注意,如果选择被清除,将不会触发(如果SelectedNodenull)相反,你可以处理MouseUp,因为在推荐的文件.

  • 不幸的是,当您处理 `MouseUp` 时,树视图的 `SelectedNode` 属性尚未更新。 (2认同)