C#treeView控件单击事件选中节点滞后问题解决方法

问题描述:在treeView的Click事件中,选中的节点SelectedNode并不是您刚才点击的节点,总是上一次选中的节点,节点选中滞后的问题。

解决方案:在treeView的MouseDown事件里面写如下代码:

private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
 if ((sender as TreeView) != null)
 {
 treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);
 }
}
 

MouseDown事件发生在Click事件之前,在这个时候就把SelectedNode转变成你鼠标点的那个节点就没问题了。

时间: 2024-10-28 21:07:12

C#treeView控件单击事件选中节点滞后问题解决方法的相关文章

选中Tab控件单击事件,点击tab头,定位到导航栏的选项,为选中状态 ,DevExpress.XtraNavBar.NavBarControl 导航控件定位或选中状态 另导航的选项为选中状态.

/// <summary> /// 选中Tab控件单击事件,点击tab头,定位到导航栏的选项,为选中状态 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void xtraTabControl1_Click(object sender, EventArgs e) { Xtr

WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色

本文转载:http://www.cnblogs.com/umplatform/archive/2012/08/29/2660240.html 在B/S开发中,对TreeView控件要改变当前选中节点的颜色比较方便,其有相应的SelectedNodeChanged事件进行控制,但对于WinForm则没有这样方便.申明一下,我在这儿所说的改变当前节点的字体与颜色,主要是在WinForm中的TreeView控件,当前选中节点后,其失去鼠标焦点后节点的字体与颜色失去了选中状态,层级一多,我们就不知道当前

C# TreeView控件 展开指定子节点的所有父节点

通常,我们需要的功能更多的是通过展开某一个父节点同时展开所有的子节点(即:联动),但是有时候我们也需要展开某一个节点之上的所有父节点,直到当前节点,例如在删除某一个节点时,不想删除之后所有节点有折叠,这时候就需要这种功能.这样说可能不好理解,也可能是本人语言表达能力欠佳,我们来看一个图: 通常我们都是点击根节点"1"展开所有的节点,如上.但是现在我们要删除节点"11111",删除之后是自动展开到"1111",即: 注意两个图是不一样的. 如何实现

C# TreeView控件 父节点子节点勾选变化关联

项目用到了TreeView控件,父节点子节点勾选需要关联.子节点勾选,父节点同步.父节点勾选,所有子节点都勾选,并递归.网上找了一圈,好多代码都不满足要求.节点勾选,向下递归子节点,都实现了.节点勾选,向上递归,父节点同步勾选,也实现了.但是节点去除勾选,应该判断其同级所有节点,若同级节点都处于未勾选状态,则应该去除父节点勾选状态,并向上递归.这一点,没有找到合适的代码.就自己写了这部分代码.仅仅只是实现这个效果,代码还有优化的空间,后续有时间再来修改了. private void treeVi

TreeView控件点击父节点同时选择子节点JS脚本

1 <script language="javascript" type="text/javascript"> 2 function client_OnTreeNodeChecked() { 3 var obj = window.event.srcElement; 4 var treeNodeFound = false; 5 var checkedState; 6 if (obj.tagName == "INPUT" &&am

使用js如何获取treeview控件的当前选中的节点

var selectedNodeID = theForm.elements["<%=treeView1.ClientID%>_SelectedNode"].value;      if (selectedNodeID != "")       {        var selectedNode = document.getElementById(selectedNodeID);var text = selectedNode.innerHTML;}

WinForm中TreeView控件实现鼠标拖动节点(可实现同级节点位置互换,或拖到目标子节点)

private int draptype=1;//1:不同级, 不为1:拖同级 private void treeView1_ItemDrag(object sender, ItemDragEventArgs e) { if (e.Button == MouseButtons.Left) { DoDragDrop(e.Item, DragDropEffects.Move); } } private void treeView1_DragEnter(object sender, DragEvent

C# Winform 点击TreeView控件节点的CheckBox不触发NodeMouseClick事件的做法

之前有个问题很困扰我,因为项目需要,我给TreeView控件的每个node节点加上了CheckBox,当我点击CheckBox时便会触发NodeMouseClick事件,而我只希望点击节点文本时才触发这个事件,终于在此博客找到解决方案http://blog.csdn.net/yunhaic/article/details/6409526 博主:徐云海 private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEv

c#运用TreeView控件的树形视图显示数据库中数据

TreeView控件显示数据库,Nodes集合的Add方法. Treeview控件的Nodes集合包含多个子节点,节点也可以包含另外的节点.通过节点的backcolor属性设置背景色. 具体代码测试: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System