日期:2014-05-20  浏览次数:20834 次

怎样才能让树形控件支持右键选择?
在WinForm程序里,   树形控件一般需要先左键选择一个结点,   然后按右键弹出菜单对该结点进行相关的操作,   但是我想站鼠标右键也能直接选择到一个结点,   不知道怎么实现?     请教了.

------解决方案--------------------
用mouseDown事件就可以了。
private void PonTree_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
TreeNode TempNode = PonTree.GetNodeAt( e.X , e.Y );
if ( TempNode != null )
{
PonTree.SelectedNode = TempNode;//選中
}
else
{
return ;
}
}
------解决方案--------------------
在MouseUp事件里写上 treeView1.selectNode = e.Node;
试试把 刚想的方法

------解决方案--------------------
如果不想从TreeView继承一个新的来改写,那就向TreeView控件添加下的事件:
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
TreeView tvw = sender as TreeView;
TreeNode _node = tvw.GetNodeAt(e.Location);
if (_node != null)
{
tvw.SelectedNode = _node;
}
}

如果从TreeView继承一个新的控件,类似这样就行了:
class myTreeView : TreeView
{
protected override void OnMouseDown(MouseEventArgs e)
{
TreeNode _node = this.GetNodeAt(e.Location);
if (_node != null)
{
this.SelectedNode = _node;
}
}
}