TreeView 中,如果使右键单击和左键单击一样,单击空白处不选择任何一个node。现在测试的结果来看,发现右键单击空白处,只要有 node 和他在同一水平位置,就会选中。而左键单击就不会,左键只有单击到 node 的 text 才会选中。
下面是右键单击事件,通过 GetNodeAt(e.X,e.Y);
private void treeMsDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Right)
{
TreeNode tn = this.TreeView.GetNodeAt(e.X,e.Y);
if(tn==null)
{
return;
}
TreeView.SelectedNode = tn;
}
}
下面是右键单击事件,通过 GetNodeAt(e.X,e.Y);
private void treeMsDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button == MouseButtons.Right)
{
TreeNode tn = this.TreeView.GetNodeAt(e.X,e.Y);
if(tn==null)
{
return;
}
TreeView.SelectedNode = tn;
}
}
解决方案 »
- silverlight5 Silverlight3DWebContent:直接发在服务器端的素材库,用于减少XAP包的大小
- WCF能否与c++写的纯socket通讯
- (敬请高手不吝赐教)C# 如何获取Access数据库中的表名及其字段名?
- sql server连接串共享的问题?
- 请问,那为高手可以提供POP的BASE64解码和 提取附件的方法
- 窗体间传递变量
- 如何取一个html字符串中a标签的值
- c# 如何把应用程序窗口最小化至状态栏去了?
- 线程里如果需要更新多个UI控件,怎么办
- 我的VS.NET中文版安装后出现无法使用的问题
- TreeView 删除问题:全部删除,以及删除父节点及其子节点
- codechina的资源怎么不能下载?
难道要自己根据 node.text 算出长度,然后根据 e.X 重新判断一下?
顶一下,另一个问题。C# 中 Recordset 中的 RecordCount 为什么总是返回 -1
http://community.csdn.net/Expert/topic/4985/4985677.xml?temp=.8503687
if(e.Button == MouseButtons.Right)
{
TreeNode tn = this.TreeView.GetNodeAt(e.X,e.Y);
if(tn==null)
{
return;
}
else( tn.Bounds.Contains( e.X, e.Y ) )
{
TreeView.SelectedNode = tn;
}
}