【问题标题】:C# WinForms - TreeView, Context MenuC# WinForms - 树视图,上下文菜单
【发布时间】:2023-03-15 20:54:01
【问题描述】:

假设我正在使用上下文菜单将子节点添加到树视图控件。

(1)我在节点上右击

(2)上下文菜单弹出

(3)然后我点击“添加”菜单项

(4)打开一个对话框

(5) 我在该对话框中输入名称并按 OK

(6) 创建一个新节点。

点击上下文菜单项时如何获取当前节点的引用?

我需要这个,因为父对象存储在当前节点的 Tag 属性中。

【问题讨论】:

    标签: winforms treeview contextmenu


    【解决方案1】:

    如果您处理TreeNodeMouseClick,那么您的TreeNodeMouseClickEventHandler 将被传递一个TreeNodeMouseClickEventArgs 参数。

    TreeNodeMouseClickEventArgs.Node 将是您想要的 TreeNode 引用。有关类似于以下内容的示例,请参阅 TreeNodeMouseClick 文档:

    void treeView1_NodeMouseClick(object sender,  
        TreeNodeMouseClickEventArgs e)
    {
        TreeNode theTreeNodeIWant = e.Node
    
    }
    

    如果需要,可以将引用存储在成员变量中,以便其他方法可以访问它。

    【讨论】:

      【解决方案2】:

      您可以从中获取鼠标位置

      System.Windows.Forms.Cursor.Position
      

      在显示上下文菜单之前保存它。

      然后在包含您的项目的 Treeview 上使用该方法

      GetChildAtPoint(Point)
      

      并在其下方添加一个孩子。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-06
        • 1970-01-01
        • 2021-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多