2009-08-04 69 views
-1

我添加了一个上下文菜单(添加,取消)动态树视图。现在,当我单击上下文菜单项单击时,我想显示选定的树节点值。c#winforms上下文菜单事件问题

我该怎么做?

+4

这是什么问题? – 2009-08-04 05:31:48

回答

1

我假设你只需要知道treenode的文本?此代码应该做这项工作

string treeNodeText = this.treeView1.SelectedNode.Text; 
2

我假设你想知道右键单击哪个节点,当上下文菜单打开?

要确定这一点,您可以在树视图上处理mousedown事件,并确保在显示上下文菜单之前选中了右键单击的节点。

private void treeView1_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Right) 
     { 
      var node = treeView1.HitTest(e.X, e.Y).Node; 
      treeView1.SelectedNode = node; 
     } 
    } 

在ToolStripMenuItem的点击处理程序,您可以检查treeView1.SelectedNode,这将是零,如果用户点击右侧的节点外的树视图。

private void addToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     if (treeView1.SelectedNode != null) MessageBox.Show("Node selected: " + treeView1.SelectedNode.Text); 
    }