如何将SelectedNodeChanged事件添加到winform树视图?

Ale*_*lig 4 c# treeview winforms

TreeView在我的应用程序中有一个事件C#,我需要winformSelectedNodeChanged中的一个事件,就像WebControls中的事件一样

我已经阅读了这个问题及其关于使用Control.MouseUpTreeView.AfterSelect事件的答案,但这不是正确的做法(例如该问题中提到的一个OP

Control.MouseUp?他们一定是在开玩笑。如果使用按键而不是鼠标来导航树会怎样?

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

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

    //How to add event here?
}
Run Code Online (Sandbox Code Playgroud)

J3s*_*oon 5

尝试一下,您就可以使用该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);
    }
}
Run Code Online (Sandbox Code Playgroud)