C#WinForms - TreeView,上下文菜单

时间:2009-09-09 16:01:35

标签: winforms treeview contextmenu

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

(1)我右键单击节点

(2)弹出上下文菜单

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

(4)打开一个对话框

(5)我在DialogBox中输入名称,然后按OK

(6)创建一个新节点。

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

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

2 个答案:

答案 0 :(得分:7)

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

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

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

}

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

答案 1 :(得分:1)

您可以从

获取鼠标位置
System.Windows.Forms.Cursor.Position

在显示上下文菜单之前保存此内容。

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

GetChildAtPoint(Point)

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