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

发布于 2024-07-29 20:20:49 字数 80 浏览 0 评论 0原文

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

我怎样才能做到这一点?

I added a context menu (add, cancel) to tree view dynamically. Now I want to show the selected tree node value when I click on context menu item click.

How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝眸 2024-08-05 20:20:49

我假设您想知道打开上下文菜单时右键单击了哪个节点?

要确定这一点,您可以处理树视图上的 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);
    }

I assume you want to know which node was right-clicked when the context menu is opened?

To determine this you can handle the mousedown event on the treeview and ensure the node you right-clicked is selected before the context menu is displayed.

    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;
        }
    }

In the ToolStripMenuItem's click handler you can check treeView1.SelectedNode, it will be null if the user right clicked the treeview outside a node.

    private void addToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (treeView1.SelectedNode != null) MessageBox.Show("Node selected: " + treeView1.SelectedNode.Text);
    }
故笙诉离歌 2024-08-05 20:20:49

我假设您只需要知道树节点的文本? 这段代码应该可以完成工作

string treeNodeText = this.treeView1.SelectedNode.Text;

I assume you just need to know the text of the treenode? This code should do the job

string treeNodeText = this.treeView1.SelectedNode.Text;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文