如果右键单击,则ContextMenuStrip会从树视图中的项目中失去焦点

时间:2010-09-07 13:21:27

标签: winforms contextmenustrip

我有一个与树视图相关联的contextmenuStrip。

现在,例如,我在树结构中有四个节点,并且选择了节点4。

行为: ContextMenuStrip - 当您右键单击节点2时,该节点被选中,一旦上下文菜单条打开,焦点就会返回到节点4。

使用旧组件“上下文菜单”,此功能正常工作,即节点2具有焦点,直到时间上下文菜单打开。

只要上下文菜单打开,我想选择节点2。当上下文菜单关闭时,选择/焦点将返回到节点4。

请求建议。

谢谢和最诚挚的问候 萨米特

1 个答案:

答案 0 :(得分:1)

是的,当其中一个事件运行时更改焦点时,TreeView控件非常不稳定。这是区分BeforeXxxx和AfterXxxx事件的原因之一。不幸的是,上下文菜单条太快显示了。解决方案是通过实现NodeMouseClick事件自己显示上下文菜单。像这样:

    private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
        if (e.Button == MouseButtons.Right) {
            treeView1.SelectedNode = e.Node;
            contextMenuStrip1.Show(treeView1, e.Location);
        }
    }

我会把关注重点放在你身上。实施它没有多大意义。