场景

Winform控件-DevExpress18下载安装注册以及在VS中使用:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243

DevExpress的TreeList怎样设置数据源,从实例入手:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102548490

实现了树形结构后,我们要实现在树形节点上点击右键时弹窗,弹窗确认之后实现将当前节点删除。

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

这里在窗体加载完的事件里绑定Treelist的鼠标点击事件。

this.treeList2.MouseClick += treeList2_MouseClick;

在事件方法中

private void treeList2_MouseClick(object sender, MouseEventArgs e){//获取当前TreeList对象DevExpress.XtraTreeList.TreeList treeList = sender as DevExpress.XtraTreeList.TreeList;if (treeList != null && treeList.Selection.Count == 1){object idValue = null;string strIdValue = String.Empty;DataTreeNode nodeData = null;//通过TreeList的DataSource属性获取所有节点的ListList<DataTreeNode> datasource = treeList.DataSource as List<DataTreeNode>;if (datasource != null){//获取选中节点的集合中第一个的Id属性idValue = treeList.Selection[0].GetValue("Id");strIdValue = idValue.ToString();//获取当前选中节点DataTreeNode对象nodeData = datasource.Where<DataTreeNode>(p => p.Id == strIdValue).FirstOrDefault<DataTreeNode>();if (nodeData != null){//获取或设置是否启用聚焦节点的外观设置 -启用整行选中treeList.OptionsSelection.EnableAppearanceFocusedRow = true;                                //启用整行选中#region 右键弹出上下文菜单 - 删除待比较的文件//如果点击的是鼠标右键if (e.Button == System.Windows.Forms.MouseButtons.Right){//构建右键菜单System.Windows.Forms.ContextMenu ctxMenu = new System.Windows.Forms.ContextMenu();//构建右键删除菜单项System.Windows.Forms.MenuItem mnuDelete = new System.Windows.Forms.MenuItem();mnuDelete.Text = "删除当前文件";//删除菜单项点击事件订阅mnuDelete.Click += delegate(object s, EventArgs ea){//DevExpress的对话框DialogResult dialogResult = DevExpress.XtraEditors.XtraMessageBox.Show(String.Format("确定要删除此实验数据吗[{0}]?\r\n删除后无法恢复!", nodeData.Id), "标题",System.Windows.Forms.MessageBoxButtons.YesNo, MessageBoxIcon.Question);//如果点击了Yesif (dialogResult == DialogResult.Yes){try{string fileName = String.Empty;#region 删除对应的树节点//通过设置主键ID找到节点nodeDevExpress.XtraTreeList.Nodes.TreeListNode selectedNode = treeList.FindNodeByKeyID(nodeData.Id);if (selectedNode != null){//删除节点this.treeList2.Nodes.Remove(selectedNode);}#endregion//禁用整行选中treeList.OptionsSelection.EnableAppearanceFocusedRow = false;                              }catch (Exception ex){ICSharpCode.Core.LoggingService<DataTreeListHelper>.Error("删除实验数据异常:" + ex.Message, ex);DevExpress.XtraEditors.XtraMessageBox.Show("删除实验数据异常:" + ex.Message, "标题", MessageBoxButtons.OK, MessageBoxIcon.Error);}}};ctxMenu.MenuItems.Add(mnuDelete);ctxMenu.Show(treeList, new System.Drawing.Point(e.X, e.Y));}#endregionreturn;}}treeList.OptionsSelection.EnableAppearanceFocusedRow = false;                                //禁用整行选中}}

具体注释见代码。

DevExpress的TreeList实现节点上添加自定义右键菜单并实现删除节点功能相关推荐

  1. Windows10添加自定义右键菜单(详细步骤)

    Windows10添加自定义右键菜单 文章目录: 1.打开注册表 2.找到shell,然后新建 `项` 3.添加值 4.效果展示 5.把cmd也添加到菜单栏中 有时我们装了编辑类软件,但是我们不想每次 ...

  2. 实现在GEF中被选中图形上的右键菜单

    要实现在GEF中被选中图形上的右键菜单,每个action完成如下三项工作: 1.  action类定义,一般情况的action都会在选中图形后操作,所以,一般都会继承自org.eclipse.gef. ...

  3. python右键弹出菜单编写_python实现应用程序在右键菜单中添加打开方式功能

    最近项目组开发的一个小工具想要在右键菜单中添加打开方式,以有道云笔记为例进行了需求拆解和代码编写 1.需求拆解: 如何实现手动添加右键菜单的打开方式: Step1:打开注册表编辑器,Win+R-> ...

  4. win10添加自定义右键菜单

    如果你想实现在文件上点击右键,选择右键快捷方式里一个软件来打开它,但是右键菜单里没有这个软件的快捷方式(比如免安装版的UltraEdit),这时候怎么办呢? 请看下文 下面以添加UltraEdit到右 ...

  5. Qt:QListWidget的item上实现右键菜单

    关于右键菜单的实现,可以参考另一篇我转载的文章,在QT中添加右键菜单. 问题:如何实现在一个列表中点击右键,如果在Item上面,则有"修改"选项,在其余空白处,则只有"添 ...

  6. 给win8、win10系统添加自定义右键菜单项目

    首先我们打开注册表,按下键盘上win+R组合键打开运行,输入regedit,然后回车即可打开注册表了. 然后我们定位到HKEY_CLASSES_ROOT\Directory\background\sh ...

  7. Duilib中为RichEdit\Edit控件添加自定义右键菜单

    前言 Duilib中的RichEdit控件在使用中发现,基本上对复制.粘贴.剪切等快捷方式都是支持的,不过唯一缺点是没有右键菜单,感觉不够好,于是就想着加上右键菜单. 右键菜单基本思路是,在RichE ...

  8. 如何卸载ultraedit_UltraEdit_右键菜单注册及删除

    添加至右键菜单: 有些版本的 UltraEdit 安装好之后,缺少一个比较方便的功能:无法选择某个文本文件 用右键选择 UltraEdit 打开.仔细查看注册表,发现把下面内容加入注册表即可: 创建 ...

  9. win10 右键菜单onedrive 彻底删除办法

    最初手动删除注册表方法: Windows Registry Editor Version 5.00[-HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\ ...

最新文章

  1. 文字链接_新生命道目录及音频、文字链接(20200501更新)
  2. gtk+-hello,world
  3. 相机视场角和焦距_按照工业镜头的视场的分类
  4. 数据库-优化-从慢查询日志中分析索引使用情况及pt-find
  5. MySql轻松入门系列——第一站 从源码角度轻松认识mysql整体框架图
  6. Axis2;wsdl生成客户端和serverJava代码
  7. 地推不同HTTP协议解决的问题
  8. 微型计算机原理及应用程序题,微型计算机原理及应用试题及答案
  9. 2000坐标系转经纬度工具_【Leaflet开发】L.CRS + 搞定Leaflet多坐标系拓展
  10. Gram matrix(格拉姆矩阵)
  11. Microsoft Caffe(msCaffe)无GPU快速配置
  12. 2019年消防工程师综合必看考点:建筑分类、高度、层数
  13. WAS中间件服务器简介
  14. 华为认证、华三认证、思科认证考哪个好?
  15. Minimax算法——井字棋
  16. 应用安全系列之三十:任意重定向
  17. DREA:基于多样性排序的多目标优化进化算法
  18. 犹他大学支付45万美元赎金以阻止被盗数据泄露
  19. Fractions to Decimals
  20. android 判断安装微信,Android开发中判断手机是否安装了QQ或者微信

热门文章

  1. 【String类、static、Arrays类、Math类】
  2. 数据库服务器管理系统,数据库管理系统服务器
  3. win10 2004 最新版图文安装流程
  4. java 安卓基础面试题_android-------Java 常问的基础面试题
  5. jstl java_JSTL-Java-Baby-51CTO博客
  6. a++浏览器_走进浏览器内部—剖析浏览器是如何工作的(上)
  7. etcdctl命令查询etcd信息
  8. android drawableleft 垂直居中,Android TextView前加图标垂直居中第一行(仿大众点评购买须知/提示语)...
  9. php dingo和jwt,Laravel实现dingo+JWT api接口之配置篇
  10. c# 微服务学习_关于使用“江西微就业”服务平台学习掌握就业创业帮扶政策的通知...