C#之在treeview中鼠标点击的所选的节点触发事件

一、背景

如下图所示,我想实现通过鼠标点击treeview的根节点,然后在文本框控件中显示鼠标点击的节点号。
1100486-20170714095100759-489553451.png

二、程序实现

因为是要通过鼠标点击才发生的事情,所以这属于一个事件,需要触发才行,刚开始不知道这个事件,一直在网上复制别人的代码,发现点击鼠标一直触发不了。需要在treeview控件的属性窗口上有个闪电的标志,代表的是事件,去设置这个触发的事件。如下图所示:
1100486-20170714094848884-1576035310.png
然后在NodeMouseClick里边设置触发的函数private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e),表示的是节点的触发。也就是鼠标点击节点后就会触发这个事件进行处理。程序如下:

using System.Windows.Forms;
private event TreeNodeMouseClickEventHandler NodeMouseClick;

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)  //鼠标点击节点触发的事件
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Left)  //单击鼠标左键才响应
            {
                if (e.Node.Level == 1)                               //判断子节点才响应
                {
                    textBox1.Text = e.Node.Text;                    //文件框中显示鼠标点击的节点名称
                }
            }    
        }

程序中鼠标点击节点是会判断鼠标的左键才会响应,然后再判断是不是子节点,如果是子节点才会显示我想要的子节点名称内容。

三、参考资料

https://msdn.microsoft.com/zh-cn/library/system.windows.forms.treeview.nodemouseclick(v=vs.110).aspx

by 羊羊得亿
2017-07-14 ShenZhen

转载于:https://www.cnblogs.com/yangxuli/p/7168553.html

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF TreeView 控件提供了两种节点点击事件,分别是 PreviewMouseDown 和 MouseDown。其,PreviewMouseDown 事件是在节点点击之前触发的,而 MouseDown 事件是在节点点击之后触发的。 你可以在 XAML TreeView 控件绑定 PreviewMouseDown 或 MouseDown 事件,也可以在代码使用 AddHandler 方法为 TreeView 控件添加 PreviewMouseDown 或 MouseDown 事件处理程序。 以下是一个示例,展示如何在 XAML TreeView 控件绑定 PreviewMouseDown 事件处理程序: ```xml <TreeView PreviewMouseDown="TreeView_PreviewMouseDown"> <TreeViewItem Header="Item 1"> <TreeViewItem Header="Subitem 1.1"/> <TreeViewItem Header="Subitem 1.2"/> </TreeViewItem> <TreeViewItem Header="Item 2"> <TreeViewItem Header="Subitem 2.1"/> <TreeViewItem Header="Subitem 2.2"/> </TreeViewItem> </TreeView> ``` 在代码实现 TreeView_PreviewMouseDown 事件处理程序: ```csharp private void TreeView_PreviewMouseDown(object sender, MouseButtonEventArgs e) { TreeViewItem item = VisualUpwardSearch<TreeViewItem>(e.OriginalSource as DependencyObject) as TreeViewItem; if (item != null) { // 处理节点点击事件 // ... } } public static DependencyObject VisualUpwardSearch<T>(DependencyObject source) { while (source != null && !(source is T)) { source = VisualTreeHelper.GetParent(source); } return source; } ``` 在上面的代码,我们使用了 VisualUpwardSearch 方法来找到被点击节点,然后在 if 语句处理节点点击事件。你可以根据自己的需求修改此方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值