首页 > 编程语言 >【c# winform】devexpress treeList右键菜单添加按钮

【c# winform】devexpress treeList右键菜单添加按钮

时间:2023-12-22 09:24:23浏览次数:44  
标签:菜单 PopupMenuShowing sender c# devexpress void private 右键

本文提供俩种不需要手动添加编辑控件方法。

方法一:创建新的右键菜单添加“执行选择”按钮,且抑制TreeList自带菜单
结果展示:

 代码: 

private void Form1_Load(object sender, EventArgs e)
{
  CreateBarButtonItem();
}

private void CreateBarButtonItem() {

  // 创建右键菜单
  ContextMenuStrip contextMenuStrip = new ContextMenuStrip();
  // 添加 "执行选择" 菜单项
  ToolStripMenuItem execSelectedItem = new ToolStripMenuItem("执行选择");
  execSelectedItem.Click += ExecSelectedItem_Click; ;
  contextMenuStrip.Items.Add(execSelectedItem);
  // 关联右键菜单与 TreeList 控件
  treeList1.PopupMenuShowing += TreeList1_PopupMenuShowing;
}

 private void TreeList1_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e)
 {
     // 禁用自带的右键菜单
     e.Allow = false;
 }

private void ExecSelectedItem_Click(object sender, EventArgs e)
{
  //处理“执行选择”事件逻辑
} 

方法二:在TreeList自带菜单基础上添加“执行选择”按钮

结果展示: 

 右键空节点 

 右键节点,保留自带菜单功能  

 右键列标题,保留自带菜单功能‍  

代码: 

private void Form1_Load(object sender, EventArgs e)
{
  treeList1.PopupMenuShowing += TreeList1_PopupMenuShowing;//自定义右键展示菜单
}

private void TreeList1_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e)
{
  // 获取右键菜单
  if (e.Menu is TreeListMenu menu)
  {
    // 添加自定义按钮
    DXMenuItem execSelectedItem = new DXMenuItem("执行选择");
    execSelectedItem.Click += ExecSelectedItem_Click;
    // 将自定义按钮插入到菜单的末尾
    menu.Items.Add(execSelectedItem);
  }
}

private void ExecSelectedItem_Click(object sender, EventArgs e)
{
  //处理“执行选择”事件逻辑
}  

 

标签:菜单,PopupMenuShowing,sender,c#,devexpress,void,private,右键
From: https://www.cnblogs.com/RCJL/p/17920545.html

相关文章

  • core-js引起的报错
    从git上获取的代码突然运行不起来,报错提示含有[email protected]:core-js@<3.23.3isnolongermaintainedandnotrecommendedforusageduetothenumberofissues.BecauseoftheV8enginewhims,featuredetectioninoldcore-jsversionscouldcause......
  • DevExpress中使用BandGridView实现复合(多行)表头、设置多行表头背景颜色、表格边框颜色
    一、实现效果二、实现方法2.1、创建复合表头①将创建的GridControl下的GirdView1转化为BandGridView类型;②创建需要展示的列(指定列的名称【Name】、描述【caption】、数据字段名称【FieldName】)③绑定列实现复合表头。注意:如果复合表头有多行,则需要设置新增Band的RowCoun......
  • C++ Qt开发:StandardItemModel数据模型组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍StandardItemModel数据模型组件的常用方法及灵活运用。QStandardItemModel是Qt中用于存储标准......
  • 采集终端adc测量电阻不准问题
    现象:测量端接一个200欧姆的电阻,adc测量得出电阻值为260左右,为什么测量的不准?原理图:思考过程:硬件问题排查,不是硬件问题;单片机adc外设配置问题,下载例程,发现不是adc外设配置问题;分析测量电阻原理,是电压变化范围太小原因(如下图);结论:这是一个简单的测量电阻电路,需要根据要测量......
  • Qt/C++视频监控Onvif工具/组播搜索/显示监控画面/图片参数调节/OSD管理/祖传原创
    一、前言能够写出简单易用而又不失功能强大的组件,一直是我的追求,简单主要体现在易用性,不能搞一些繁琐的流程和一些极难使用的API接口,或者一些看不懂的很难以理解的函数名称,一定是要越简单越好。功能强大主要体现在功能的完整性,常规的接口肯定是必备的,然后在默认值方面,尽量将值设......
  • 【Python】【OpenCV】定位条形码(二)
    根据上一篇博客可知,单纯的通过求取最大面积而进行定位的局限性,因此我们接下来将通过cv2.moments()和cv2.HuMoments()这两个方法来在更复杂的环境中去找到我们的目标区域。 cv2.moments():参数:array:表示输入图像的单通道数组。通常是灰度图像,可以是8位或浮点型。binaryIm......
  • 如何在 Git 书写良好的 Commit Messages
    如何在Git书写良好的CommitMessagesWhy(为什么编写)|How(如何编写)WhyMessagesAdiffwilltellyouwhatchanged,butonlythecommitmessagecanproperlytellyouwhy良好的Messages可以告诉人们变更的原因,更好高效地理解几个月前甚至几年前发生的事情。......
  • django验证码插件 --- django-simple-captcha
    使用django-simple-captcha实现登录验证码: 第一步:安装pillow依赖pipinstallpillow  -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ 第二步:安装django-simple-captchapipinstalldjango-simple-captcha -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ 第三步:注......
  • Spring-IOC
     1.前言1) 框架:spring的本质就是一个容器,放java对象的容器,java对象在spring容器中也叫做bean对象。项目启动的时候,把bean对象放到IOC容器中,当需要使用对象的时候,直接从容器中拿出来使用。2) 框架作用:提高开发效率;增强可重用性;提供编......
  • Excel导入导出
    POI--------》Workbook接口HSSFWorkbook:这个实现类是我们早期使用最多的对象,它可以操作Excel2003以前(包含2003)的所有Excel版本。在2003以前Excel的版本后缀还是.xlsXSSFWorkbook:这个实现类现在在很多公司都可以发现还在使用,它是操作的Excel2003--Excel2007......