我有一个与树视图相关联的contextmenuStrip。
现在,例如,我在树结构中有四个节点,并且选择了节点4。
行为: ContextMenuStrip - 当您右键单击节点2时,该节点被选中,一旦上下文菜单条打开,焦点就会返回到节点4。
使用旧组件“上下文菜单”,此功能正常工作,即节点2具有焦点,直到时间上下文菜单打开。
只要上下文菜单打开,我想选择节点2。当上下文菜单关闭时,选择/焦点将返回到节点4。
请求建议。
谢谢和最诚挚的问候 萨米特
答案 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);
}
}
我会把关注重点放在你身上。实施它没有多大意义。