【问题标题】:How to add SelectedNodeChanged event to winform treeview?如何将 SelectedNodeChanged 事件添加到 winform 树视图?
【发布时间】:2015-12-27 05:08:08
【问题描述】:

在我的C# 应用程序中有一个TreeView,我需要一个在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?
}

【问题讨论】:

    标签: c# winforms treeview


    【解决方案1】:

    试试这个,你可以使用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);
        }
    }
    

    【讨论】:

    • 抱歉发布了错误的解决方案。我已经编辑了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多