场景

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

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

在上面已经实现自定义右键菜单删除树节点,这里要实现自定义右键菜单实现

右键功能自定义,比如打开文件选择框。

注:

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

实现

首先绑定treelist的鼠标单击事件

treeList.MouseClick -= treeList_MouseClick;
treeList.MouseClick += treeList_MouseClick;

然后在绑定的单击事件中

获取treelist,然后获取其数据源并转换为对象List,然后是相关的业务判断。

然后如果是鼠标右键的话,新增右键菜单项。

private static void treeList_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e){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;List<DataTreeNode> datasource = treeList.DataSource as List<DataTreeNode>;if (datasource != null){idValue = treeList.Selection[0].GetValue("Id");strIdValue = idValue.ToString();nodeData = datasource.Where<DataTreeNode>(p => p.Id == strIdValue).FirstOrDefault<DataTreeNode>();if (nodeData != null){if (nodeData.NodeType == DataTreeNodeTypes.File){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) {DialogResult dialogResult = DevExpress.XtraEditors.XtraMessageBox.Show(String.Format("确定要删除此实验数据吗[{0}]?\r\n删除后无法恢复!", nodeData.Id), "霸道标题", System.Windows.Forms.MessageBoxButtons.YesNo, MessageBoxIcon.Question);if (dialogResult == DialogResult.Yes){try{string fileName = String.Empty;#region 删除对应的树节点DevExpress.XtraTreeList.Nodes.TreeListNode selectedNode = treeList.FindNodeByKeyID(nodeData.Id);if (selectedNode != null){selectedNode.ParentNode.Nodes.Remove(selectedNode);}#endregiontreeList.OptionsSelection.EnableAppearanceFocusedRow = false;                                //禁用整行选中}catch(Exception ex){DevExpress.XtraEditors.XtraMessageBox.Show("删除实验数据异常:" + ex.Message, "霸道标题", MessageBoxButtons.OK,MessageBoxIcon.Error);}}};ctxMenu.MenuItems.Add(mnuDelete);#endregion#region 右键弹出上下文菜单 - 导入配置文件System.Windows.Forms.MenuItem mnuImport = new System.Windows.Forms.MenuItem();mnuImport.Text = "导入配置文件";mnuImport.Click += delegate(object s, EventArgs ea){OpenFileDialog importOpenFileDialog = new OpenFileDialog();importOpenFileDialog.ShowDialog();};ctxMenu.MenuItems.Add(mnuImport);#endregion#region 右键弹出上下文菜单 - 导出配置文件System.Windows.Forms.MenuItem mnuExport = new System.Windows.Forms.MenuItem();mnuExport.Text = "导出配置文件";mnuExport.Click += delegate(object s, EventArgs ea){DialogResult dialogResult = DevExpress.XtraEditors.XtraMessageBox.Show(String.Format("导出[{0}]成功!", nodeData.Id), "标题", System.Windows.Forms.MessageBoxButtons.YesNo, MessageBoxIcon.Question);};ctxMenu.MenuItems.Add(mnuExport);#endregionctxMenu.Show(treeList, new System.Drawing.Point(e.X, e.Y));}return;}}}treeList.OptionsSelection.EnableAppearanceFocusedRow = false;                                //禁用整行选中}}

效果

点击导入配置文件后

DevExpress的TreeList实现自定义右键菜单打开文件选择对话框相关推荐

  1. C/C++实战001:C语言打开文件选择对话框

    我是在C/C++控制台写的打开文件选择对话框,所以很多头文件需要先进行声明,不然功能无法使用 新声明头文件: #include <windows.h> #include <ShlOb ...

  2. [ahk]右键菜单打开文件所在文件夹(快捷方式也适用)

    功能:能打开文件所在路径 并定位到文件上,能正确解析lnk所指文件的目录. copypath.ahk  文件如下: #NoTrayIcon Clipboard=%1% openpath.ahk文件如下 ...

  3. 右键菜单打开文件所在文件夹的插件EasyExplore

    2019独角兽企业重金招聘Python工程师标准>>> 如果你经常需要在Eclipse里打开相关资源文件所在的文件夹,比较麻烦,要右键,属性,在Location一栏中把所在的文件夹拷 ...

  4. C# winform 打开文件选择对话框

    微软文档: https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.win32.openfiledialog?view=netframework-4 ...

  5. 把Open Folder as PyCharm Project添加到右键菜单打开文件夹

    目录 如何添加Open Folder as PyCharm Project 第一步:win+r打开,输入regedit,打开注册表管理器 第二步:在注册表修改器background下面的shell,从 ...

  6. C# 系统应用之ListView控件 (三).添加ContextMenuStrip右键菜单打开删除文件

    在前面讲述过使用TreeView控件和ListView控件显示磁盘目录信息,但仅仅是显示信息是不够的,我们还需要具体的操作.在"个人电脑使用历史痕迹"项目中我还需要添加" ...

  7. java 树 右键菜单_jQuery实现自定义右键菜单的树状菜单效果

    本文实例讲述了jQuery实现自定义右键菜单的树状菜单效果.分享给大家供大家参考.具体如下: 这是一款基于jQuery的自定义右键菜单,在树状结构的子节点(下级没有节点)上单击右键才会弹出自定义菜单, ...

  8. vue怎么实现右键二级菜单_vue中如何自定义右键菜单详解

    在所编辑的页面,需要添加右键菜单的元素,绑定contextmenu事件,如下: v-for="item in resourceList" :key="item.id&qu ...

  9. win10 自定义右键菜单

    win10 自定义右键菜单 首先使用快捷键 win + r 打开运行窗口,在其中输入 regedit 然后点击 确定 进入注册表后,按照顺序找到位置: HKEY_LOCAL_MACHINE\SOFTW ...

最新文章

  1. Follow Me:CCIE RS--新版CCIE Routing Switching 考纲要点
  2. 初次尝试使用IDAPro修改程序控制流程
  3. 关于Keil 的快速注释功能,并为其添加快捷键
  4. CFG_GCR全局配置寄存器设置
  5. .NET3.0已经Pre-release了
  6. 字段定义_ArcGIS开发amp;gdb、shapefile创建与投影定义,字段创建
  7. ES6新特性_ES6模板字符串---JavaScript_ECMAScript_ES6-ES11新特性工作笔记007
  8. Leetcode每日一题:10.09.sorted-matrix-search-lcci(排序矩阵查找)
  9. cnpm安装失败及解决方案
  10. 普通人学python有意义吗-自学Python编程的第一天----------来自苦逼的转行人
  11. DS18B20温度传感器使用简介
  12. 4-7终极无敌DP乱秀
  13. 8个PNG素材网站,每一个都让你觉得人生发亮
  14. qmoc文件_Qt(2):MOC文件解析
  15. 在XX小学六一儿童节庆祝大会上的致辞
  16. 103.网络安全渗透测试—[权限提升篇1]—[Linux内核漏洞提权]
  17. java发送邮件问题
  18. 教你用 Python 快速获取行业板块股,辅助价值投资!
  19. 关于若依框架页面跳转但内容不变的问题
  20. JSP页面的日期控件可以弹出选择框选择日期

热门文章

  1. 小孩孩子应用题计算机错误,孩子应用题失分的主要原因是什么?家长来看看
  2. 伯明顿分校计算机研究生专业,印第安纳大学伯明顿分校计算机科学硕士专业申请条件及申请材料...
  3. 使用shell脚本完成自动化部署jar包
  4. 在K8S上的Web服务该怎么做域名解析呢?
  5. 微服务架构编码构建 环境配置 热部署配置
  6. matlab与钻井平台,基于MATLAB环境下采用C8051F060实现钻井井眼姿态监测系统的设计...
  7. pid控制从入门到精通pdf_网络工程师从入门到精通通俗易懂系列 | 访问控制列表ACL原来还可以这样理解,果断收藏!...
  8. 联想电脑的一键换机软件——乐换机
  9. 超级计算机的电力消耗,适用超级计算机的一种优化供电方式
  10. 百度云虚拟机 隐藏index.php,wamp server虚拟主机设置index.php隐藏(入口文件隐藏)