为TreeView中的所有节点设置ContextMenuStrip?

时间:2016-10-06 20:11:43

标签: c# winforms treeview contextmenustrip

我真的很想找到一个聪明的方法来为正确的节点设置正确的ContextMenuStrip。我有3个级别的树视图。除此之外,我还创建了3个不同的ContextMenuStrips,每个都是他们所尊重的关卡。是否有一个简单的方法或技巧可以解决这个问题?

还有一种方法可以让它直接点击一个节点使它成为选定的节点吗?或者也称为左键单击。

对不起2合1,但我想如果有人对这个话题有足够的了解来解决我的一个问题,他们很有可能也会知道第二个问题。

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

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

1 个答案:

答案 0 :(得分:2)

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