我的TreeView
应用中有一个C#
我需要 winform 中的SelectedNodeChanged
事件,就像 WebControls中的事件一样
我已阅读this question及其有关使用Control.MouseUp
和TreeView.AfterSelect
事件的答案,但这不是正确的事情(例如OP中提到的那个问题)
Control.MouseUp?他们一定是在开玩笑。如果树是什么怎么办? 用键而不是鼠标导航?
我尝试创建自己的TreeView
,但我真的不知道如何为SelectedNodeChanged
创建真实事件。
public partial class MyTreeView : TreeView
{
public MyTreeView()
{
InitializeComponent();
}
//How to add event here?
}
答案 0 :(得分:2)
尝试此操作即可使用SelectedNodeChanged
事件
public partial class MyTreeView : TreeView
{
public event TreeViewEventHandler SelectedNodeChanged;
public MyTreeView()
{
this.AfterSelect += new TreeViewEventHandler(SelectNodeChangedEvent);
this.MouseUp += new MouseEventHandler(MouseUpEvent);
}
void SelectNodeChangedEvent(object sender, TreeViewEventArgs e)
{
SelectedNodeChangedTrigger(sender, e);
}
void MouseUpEvent(object sender, MouseEventArgs e)
{
if (this.SelectedNode == null)
SelectedNodeChangedTrigger(sender, new TreeViewEventArgs(null));
}
void SelectedNodeChangedTrigger(object sender, TreeViewEventArgs e)
{
if (SelectedNodeChanged != null)
SelectedNodeChanged(sender, e);
}
}