如何将SelectedNodeChanged事件添加到winform treeview?

时间:2015-12-27 05:08:09

标签: c# winforms treeview

我的TreeView应用中有一个C#我需要 winform 中的SelectedNodeChanged事件,就像 WebControls中的事件一样

我已阅读this question及其有关使用Control.MouseUpTreeView.AfterSelect事件的答案,但这不是正确的事情(例如OP中提到的那个问题

  

Control.MouseUp?他们一定是在开玩笑。如果树是什么怎么办?   用键而不是鼠标导航?

我尝试创建自己的TreeView,但我真的不知道如何为SelectedNodeChanged创建真实事件。

public partial class MyTreeView : TreeView
{
    public MyTreeView()
    {
        InitializeComponent();
    }

    //How to add event here?
}

1 个答案:

答案 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);
    }
}
相关问题