为一个关卡中的所有节点设置ContextMenuStrip

本文关键字:节点 ContextMenuStrip 设置 一个 | 更新日期: 2023-09-27 18:11:49

我真的很难想出一个聪明的方法来为正确的节点设置正确的ContextMenuStrip。我有一个树视图与3个级别。与它一起,我有3个不同的contextmenustrip,我已经创建,每一个尊重的水平。有没有什么简单的方法或者技巧可以解决这个问题?

也有一种方法有它,所以右键单击一个节点使其选定的节点?或者aka的作用与左键点击相同。

很抱歉,但我想如果有人对这个话题有足够的了解,可以解决我的一个问题,那么他们很有可能也会知道第二个问题。

编辑:我用这行代码找到了第二个问题的解决方案:

treeView.NodeMouseClick += (sender, args) => treeView.SelectedNode = args.Node;

为一个关卡中的所有节点设置ContextMenuStrip

使用NodeMouseClick事件设置所选节点的ContextMenuStrip属性:

void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
  if (e.Button == MouseButtons.Right) {
    treeView1.SelectedNode = e.Node;
  }
  if (e.Node.Level == 0) {
    e.Node.ContextMenuStrip = cms1;
  } else if (e.Node.Level == 1) {
    e.Node.ContextMenuStrip = cms2;
  } else  if (e.Node.Level == 2) {
    e.Node.ContextMenuStrip = cms3;
  }
}