DevExpress的TreeList实现自定义右键菜单打开文件选择对话框
场景
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实现自定义右键菜单打开文件选择对话框相关推荐
- C/C++实战001:C语言打开文件选择对话框
我是在C/C++控制台写的打开文件选择对话框,所以很多头文件需要先进行声明,不然功能无法使用 新声明头文件: #include <windows.h> #include <ShlOb ...
- [ahk]右键菜单打开文件所在文件夹(快捷方式也适用)
功能:能打开文件所在路径 并定位到文件上,能正确解析lnk所指文件的目录. copypath.ahk 文件如下: #NoTrayIcon Clipboard=%1% openpath.ahk文件如下 ...
- 右键菜单打开文件所在文件夹的插件EasyExplore
2019独角兽企业重金招聘Python工程师标准>>> 如果你经常需要在Eclipse里打开相关资源文件所在的文件夹,比较麻烦,要右键,属性,在Location一栏中把所在的文件夹拷 ...
- C# winform 打开文件选择对话框
微软文档: https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.win32.openfiledialog?view=netframework-4 ...
- 把Open Folder as PyCharm Project添加到右键菜单打开文件夹
目录 如何添加Open Folder as PyCharm Project 第一步:win+r打开,输入regedit,打开注册表管理器 第二步:在注册表修改器background下面的shell,从 ...
- C# 系统应用之ListView控件 (三).添加ContextMenuStrip右键菜单打开删除文件
在前面讲述过使用TreeView控件和ListView控件显示磁盘目录信息,但仅仅是显示信息是不够的,我们还需要具体的操作.在"个人电脑使用历史痕迹"项目中我还需要添加" ...
- java 树 右键菜单_jQuery实现自定义右键菜单的树状菜单效果
本文实例讲述了jQuery实现自定义右键菜单的树状菜单效果.分享给大家供大家参考.具体如下: 这是一款基于jQuery的自定义右键菜单,在树状结构的子节点(下级没有节点)上单击右键才会弹出自定义菜单, ...
- vue怎么实现右键二级菜单_vue中如何自定义右键菜单详解
在所编辑的页面,需要添加右键菜单的元素,绑定contextmenu事件,如下: v-for="item in resourceList" :key="item.id&qu ...
- win10 自定义右键菜单
win10 自定义右键菜单 首先使用快捷键 win + r 打开运行窗口,在其中输入 regedit 然后点击 确定 进入注册表后,按照顺序找到位置: HKEY_LOCAL_MACHINE\SOFTW ...
最新文章
- Follow Me:CCIE RS--新版CCIE Routing Switching 考纲要点
- 初次尝试使用IDAPro修改程序控制流程
- 关于Keil 的快速注释功能,并为其添加快捷键
- CFG_GCR全局配置寄存器设置
- .NET3.0已经Pre-release了
- 字段定义_ArcGIS开发amp;gdb、shapefile创建与投影定义,字段创建
- ES6新特性_ES6模板字符串---JavaScript_ECMAScript_ES6-ES11新特性工作笔记007
- Leetcode每日一题:10.09.sorted-matrix-search-lcci(排序矩阵查找)
- cnpm安装失败及解决方案
- 普通人学python有意义吗-自学Python编程的第一天----------来自苦逼的转行人
- DS18B20温度传感器使用简介
- 4-7终极无敌DP乱秀
- 8个PNG素材网站,每一个都让你觉得人生发亮
- qmoc文件_Qt(2):MOC文件解析
- 在XX小学六一儿童节庆祝大会上的致辞
- 103.网络安全渗透测试—[权限提升篇1]—[Linux内核漏洞提权]
- java发送邮件问题
- 教你用 Python 快速获取行业板块股,辅助价值投资!
- 关于若依框架页面跳转但内容不变的问题
- JSP页面的日期控件可以弹出选择框选择日期
热门文章
- 小孩孩子应用题计算机错误,孩子应用题失分的主要原因是什么?家长来看看
- 伯明顿分校计算机研究生专业,印第安纳大学伯明顿分校计算机科学硕士专业申请条件及申请材料...
- 使用shell脚本完成自动化部署jar包
- 在K8S上的Web服务该怎么做域名解析呢?
- 微服务架构编码构建 环境配置 热部署配置
- matlab与钻井平台,基于MATLAB环境下采用C8051F060实现钻井井眼姿态监测系统的设计...
- pid控制从入门到精通pdf_网络工程师从入门到精通通俗易懂系列 | 访问控制列表ACL原来还可以这样理解,果断收藏!...
- 联想电脑的一键换机软件——乐换机
- 超级计算机的电力消耗,适用超级计算机的一种优化供电方式
- 百度云虚拟机 隐藏index.php,wamp server虚拟主机设置index.php隐藏(入口文件隐藏)