我试图在用户右键单击时在我的树形视图上显示一个弹出式菜单 - 允许他们选择上下文相关的操作来应用所选节点。右键点击选择.Net TreeNode
此刻用户必须左键单击节点,然后右键单击才能选择。
是否有可能在节点上点击右键选择该节点 - 如果是的话,最好的方法是什么?
我试图在用户右键单击时在我的树形视图上显示一个弹出式菜单 - 允许他们选择上下文相关的操作来应用所选节点。右键点击选择.Net TreeNode
此刻用户必须左键单击节点,然后右键单击才能选择。
是否有可能在节点上点击右键选择该节点 - 如果是的话,最好的方法是什么?
左右两侧点击触发一个click事件,并导致选择改变。但是,在某些情况下(我还没有打扰追查),选择将从右键单击的节点更改为最初选择的节点。
为了确保右键单击更改选择,你可以强制使用MouseDown
事件来改变选择的节点:
treeView.MouseDown += (sender, args) =>
treeView.SelectedNode = treeView.GetNodeAt(args.X, args.Y);
好一点,因为其他海报指出之一,是使用NodeMouseClick
事件:
treeView.NodeMouseClick += (sender, args) => treeView.SelectedNode = args.Node;
是的。这里正在处理NodeMouseClick
事件:
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
treeView1.SelectedNode = e.Node;
}
将上下文菜单条上的形式,则:
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
// Display context menu for eg:
ContextMenu1.Show();
}
}
我同意。简单地将这段代码添加到我的窗体的构造函数中对我来说是个诀窍。谢谢。 – 2012-09-14 04:42:21