在WinForm程序中添加了一个TreeView,但是当右击一个节点没有选择删除的时候,再次右击TreeView空白处,删除了刚才右击的节点的处理方法:
1.为该TreeView添加MouseDown事件,接下来写如下代码:
TreeNode tn = new TreeNode(); private void treeView1_MouseDown(object sender, MouseEventArgs e) { Point p = new Point(); p.X = e.X; p.Y = e.Y; tn = this.treeView1.GetNodeAt(p); }
这段代码里面的GetNodeAt(P)方法是检索位于指定点(以坐标表示)的树节点;如果有节点则会得到该节点,否则返回Null;
MSDN原文:
返回值
位于以树视图(客户端)坐标表示的指定位置的TreeNode,或在该位置没有节点时为 空引用(在 Visual Basic 中为 Nothing)。
2.在NodeMouseClick事件可以判断tn是否为Null,如果是,则不执行删除操作;
可以参考MSDN详细解释:http://msdn.microsoft.com/zh-cn/library/4dd0e2w6(VS.80).aspx