这个问题浪费了勇哥一个小时的时间。
即你在NodeMouseClick、Click事件中获取SelectedNode,有可能为null或者上一次的节点。
希望实现点击TreeView控件下的不同子节点,显示其对应的内容。
但发现在TreeView控件的MouseNodeClick事件中利用(TreeView)sender).SelectedNode.Name获得子节点的Name与实际点击的子节点并不一致。
通过查阅资料知道,每次在触发MouseNodeClick事件的时候TreeView选择的节点还是上次选中的节点。
TreeView还有一个事件叫AfterSelect,只有这个事件执行后,才更新了当前TreeView选中的子节点,而这个事件的触发是在MouseNodeClick事件之后的。
对于上面点击子节点选择判断错误有两种解决办法:
(1)使用双击子节点事件
(2)将之前写在MouseNodeClick事件中判断选中子节点的代码及对应动作移至TreeView的AfterSelect事件中。个人倾向第二种方法。
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!

