我真的很想找到一个聪明的方法来为正确的节点设置正确的ContextMenuStrip。我有3个级别的树视图。除此之外,我还创建了3个不同的ContextMenuStrips,每个都是他们所尊重的关卡。是否有一个简单的方法或技巧可以解决这个问题?
还有一种方法可以让它直接点击一个节点使它成为选定的节点吗?或者也称为左键单击。
对不起2合1,但我想如果有人对这个话题有足够的了解来解决我的一个问题,他们很有可能也会知道第二个问题。
编辑:我用这行代码找到了第二个问题的解决方案:treeView.NodeMouseClick += (sender, args) => treeView.SelectedNode = args.Node;
答案 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;
}
}