this.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_DoubleClick);
private void treeView1_DoubleClick(object sender, TreeNodeMouseClickEventArgs e)
//获取节点数据
string text = e.Node.Text;
this.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView1_DoubleClick); private void treeView1_DoubleClick(object sender, TreeNodeMouseClickEventArgs e) { //获取节点数据 string text
目前项目收尾,开始对之前的,之前用的一个树节点的插件,只可以使用单击事件,无法使用双击事件,于是百度一下,自定义了一个双击事件,原理是通过两次时间差来定义,代码如下:
1 //最后一次触发节点Id
2 var lastSelectedNodeId = null;
3 //最...
private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
if (e.Node.Name == "添加项目")
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="MouseDoubleClick" Handler="OnItemMouseDoubleClick" />
cs文件中 加入
private void OnItemMouseDoubleClick(object sender, Mou.
最近有用到TreeView和ListView 双击Item事件,
如果在TreeView和ListView中加入鼠标双击事件,点击TreeView和ListView中的空白的地方 也可以触发事件,明显不符合要求
,后来经过一番百度和验证
现修改如下:
TreeView双击事件中
private void OnTreeViewDoubleClick(object sender, MouseButtonEventArgs e)
if (send...
二、实现代码
首先为TreeView控件生成一个双击事件,选择闪电一样的按钮,找到 DoubleClick 这一项双击,会自动生成相应的事件,同样方法生成 MouseDown 事件和 AfterLabelEdit 事件。
private Point pi;//定义一个坐标变量
//editMenuTree为TreeView的Name
private void editMenuTree_MouseDown(object sender,
文章名字为单击事件,实际上双击等事件的操作类似
(1) TreeView中的Nodes[] 本身是没有单击、双击事件的,但是TreeView本身这些事件都有;
(2) TreeView中有一个属性:SelectedNode,该属性可以获取或设置当前选中的节点;
因此,结合点(1)和(2),就可以做出一个类似于TreeView中的子节点单击事件
实例代码:
(1) 为TreeVi
private void Form1_Load(object sender, EventArgs e)
treeView1.Nodes.Add("1根节点"); int i = 0;
treeView1.Nodes[i].Nodes.Add("0 子节点");
treeView1.Nodes[i].Nodes.Add("1 子节点");
在C#的TreeView控件中,可以通过注册节点的DoubleClick事件,实现双击节点后修改节点名称的功能。具体实现步骤如下:
1. 在TreeView控件中添加需要操作的节点。
2. 注册节点的DoubleClick事件。
3. 在事件处理程序中,判断双击的节点是否为TreeView控件中的节点,如果是,则将节点的Text属性设置为新的名称,并结束编辑状态。
下面是示例代码实现:
```csharp
private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
// 判断双击的节点是否为TreeView控件中的节点
if (e.Node != null && e.Node == treeView1.SelectedNode)
// 设置节点为编辑状态
treeView1.SelectedNode.BeginEdit();
private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
// 判断是否修改了节点名称
if (e.Label != null)
// 设置节点的新名称
e.Node.Text = e.Label;
// 结束节点的编辑状态
e.Node.EndEdit(false);
其中,treeView1_NodeMouseDoubleClick()方法用于注册节点的DoubleClick事件,treeView1_AfterLabelEdit()方法用于在节点名称编辑完成后更新节点名称。