今天在工作中遇到这样的情况
本来双击一个树节点,展开其下面的子节点,后来需求有点变化,展示子节点后还要绑定一个DataGirdView,这样的双击就显得比较累赘,然后就像把双击事件改为单击事件,把本来双击事件中的代码拷到 单击事件中后,问题就出来了
双击事件中的代码如下,程序能正常运行
private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
{
this.treeView1.SelectedNode.Parent.Name = "";
#region 其余
#endregion
}
改成单击事件后 把代码 复制到单击事件中,系统报错,说 this.treeview1.selectNode 为空,
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
this.treeView1.SelectedNode.Parent.Name = "";
#region 其余
#endregion
}
当时觉得很纳闷,既然是触发这个单击事件了,肯定是在点击某个节点后才触发的,那么this.treeview1.selectNode 就应该不为NULL,为此纠结了半天,后来经高人指定,才明白,单击事件中还没走到到这个节点被选中的步骤,也就是只是单击这个节点,并没有到选中这个节点的地步!
后来改用了AfterSelect 事件后才搞定!以后的工作中要记住了!