路漫漫兮吾将上下而求索

寻梦·追梦;在梦想中遨游,在现实中拼搏!路漫漫其修远兮,吾将上下而求索

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  37 随笔 :: 8 文章 :: 22 评论 :: 0 引用

公告

         关键点: GetNodeAt(x,y), TreeView
>>>>>>>>>>>>>>
         在做一个程序的过程中发现 Visual Studio  C# .Net 中进行WinForm下的TreeView的节点进行右键选择并处理的时候出现异常:虽然控件上显示右键点击的节点被反选了,但是在程序中获得的不是这个节点的信息。后来通过询问实验室的FredQian,他告诉我鼠标右击响应的时候TreeView控件没有改变其选定的状态,需要在鼠标事件中进行处理:检测鼠标右键,如果右击的是一个节点,就将该节点用代码来实现选定即可。实现这个功能的代码非常简单:
private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if(e.Button==MouseButtons.Right)
{
TreeNode tn=treeView1.GetNodeAt(e.X,e.Y);
if(tn!=null)treeView1.SelectedNode = tn;
}
}

其中,treeview1 就是我们绑定快捷菜单的控件,GetNodeAt(x,y) 是这里最关键的一个方法。

posted on 2006-04-09 17:27 MichaeL 阅读(385) 评论(0) 编辑 收藏