c#winforms上下文菜单事件问题

时间:2009-08-04 04:41:36

标签: c# winforms contextmenu

我动态地向树视图添加了一个上下文菜单(添加,取消)。现在,我想在单击上下文菜单项时显示所选树节点值。

我该怎么做?

2 个答案:

答案 0 :(得分: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,如果用户右键单击节点外的树视图,它将为null。

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

答案 1 :(得分:1)

我假设你只需要知道treenode的文字?这段代码应该完成这项工作

string treeNodeText = this.treeView1.SelectedNode.Text;