首页 > 编程语言 >【C#】【DevExpress】自定义单元格右键菜单,去除单元格编辑时,载入系统的默认菜单

【C#】【DevExpress】自定义单元格右键菜单,去除单元格编辑时,载入系统的默认菜单

时间:2024-10-21 15:21:51浏览次数:1  
标签:菜单 newMenuItem 自定义 单元格 item 右键 Click

使用GridView,自定义单元格的右击菜单,可以通过监听事件PopupMenuShowing,实现新增菜单。

 1 private void gridView1_PopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e)
 2 {
 3     GridView view = sender as GridView;
 4     if (view == null) return;
 5 
 6     // 获取当前编辑状态下的单元格
 7     //判断单元格是否处于编辑状态
 8     if(!e.HitInfo.InColumn)
 9     {
10         DXMenuItem newMenuItem = new DXMenuItem();
11         newMenuItem.Caption = "新的菜单项";
12         newMenuItem.Click += customMenuItem_Click;
13         e.Menu.Items.Add(newMenuItem);
14     }
15 }

这里的customMenuItem_Click是自定义的单击事件。

 

运行后,右击单元格单元格如下所示:

 但是,这也有一个问题。当单元格处于编辑状态时,显示的还是系统默认的右击菜单栏。

 我们能不能修改编辑状态下的默认菜单栏?因为我们无法直接屏蔽,菜单栏。我们可以通过调取单元格编辑器事件,新建一个菜单项(如果不需要,怎不给这个菜单项增加任何item)。

 1 private void gridView1_ShownEditor(object sender, EventArgs e)
 2 {
 3     BaseEdit activeEditor = gridView1.ActiveEditor;
 4     if (activeEditor != null)
 5     {
 6         if (activeEditor is TextEdit)
 7         {
 8             ContextMenu enptyMen = new ContextMenu();
 9             MenuItem item = new MenuItem();
10             item.Text = "新的菜单项";
11             item.Name = "test";
12             item.Click += customMenuItem_Click;
13             enptyMen.MenuItems.Add(item);
14             activeEditor.Properties.ContextMenu = enptyMen;
15         }
16     }
17 }

这样,编辑状态下右击,就能是我吗自定义的菜单了。

标签:菜单,newMenuItem,自定义,单元格,item,右键,Click
From: https://www.cnblogs.com/luyj00436/p/18489542

相关文章

  • 【C#】【DevExpress】获取当前单元格类型
    1privatevoidgridView1_ShownEditor(objectsender,System.EventArgse){2GridViewgridView=senderasGridView;3if(gridView!=null&&gridView.ActiveEditor!=null){4objectactiveEditor=gridView.ActiveEditor;5......
  • vue,xlsx,xlsx-style,file-saver,生成Excel并导出,cptable报错,合并单元格 样式缺失
    一,安装依赖 二,导入依赖import*asXLSXfrom'xlsx';import*asXLSX_STYLEfrom'xlsx-style'import{saveAs}from'file-saver';三,解决引入xlsx-style./cptable模块找不到问题Thisrelativemodulewasnotfound:*./cptablein./node_modules......
  • 右键以管理员身份打开CMD(Windows)
    注册表编辑器win+r输入regedit打开注册表编辑器找到计算机\HKEY_CLASSES_ROOT\Directory\Background\shell新建runas项选中runas然后右键新建字符串,命名为icon双击icon,输入cmd.exe选中runas然后右键新建DWORD(32位)值(D),命名为ShowBasedOnVelocityId双击ShowBasedOnVelocit......
  • devexpress report 合并列具有重复值的单元格
    使用场景,分组统计产品数量,产品列每行都会重复出现相同的产品名,于是把此列所有相同内容的行的单元格合并成一个单元格,一些人觉得这样看的方便.不读文档一头雾水,试了很多次都没效果,看了文档发现非常简单.demo例子中没有,在官网中找到一个案例https://docs.devexpress.com/......
  • jeecgboot 3.7.1 一键将生成好的代码复制到前后端项目目录,并执行SQL插入菜单的python
    importshutilimportosimportmysql.connectorfrommysql.connectorimportErrorbase_dir="D:/pro/JeecgBoot-v3.7.1"code_dir="/gendcode"package_name="meetrice"#MySQL连接配置config={'user':'root......
  • Delphi 中禁止 StringGrid 单元格被选中
    Delphi中禁止StringGrid单元格被选中环境Windows1123H2Delphi12Update1使用Delphi的StringGrid展示数据而不愿意某个单元格被选中时,曾经的手段是把选中位置调整到无效位置从而实际上使得单元格无法被选中。阅读文档偶然发现OnSelectCell事件提供了很简单也......
  • vue 动态加载路由,渲染左侧菜单栏
    需求我们在route文件中定义的路由是由子路由包裹进去的,它可能是无限级的。如何在vue的模板中渲染形成菜单栏。如图: 解决方法将菜单栏单独写成子组件(注意头部标签:element-plus中是el-menu)仍然在父组件中。将配置路由数据传入到子组件。子组件渲染一级路由。一级路由再调用......
  • 单元格之间创建循环超链接01
    我们可以使用openpyxl库来操作Excel文件。以下是代码,展示了如何在指定的工作表中为具有相同值的多个单元格之间创建循环超链接安装openpyxl首先,确保你已经安装了openpyxl库。如果没有安装,可以使用以下命令进行安装:pipinstallopenpyxlimportopenpyxldefcrea......
  • WPF中实现菜单导航
    这里是借助三方UI框架实现了,感兴趣的小伙伴可以看一下。 深色模式:​ 浅色模式: ​这里主要使用了以下三个包:MahApps.Metro:UI库,提供菜单导航和其它控件MahApps.Metro.IconPacks:图标库BlurWindow:窗口库 实现步骤:1、使用BlurWindow放置一个窗口1<tianxia:BlurWi......
  • 若依前端菜单管理中路由地址、组件路径、权限字符的使用
    过段时间就忘了,赶紧动笔记下来——鲁迅创建菜单时,页面上需要填写几个关键信息,以下为个人理解欢迎指正路由地址菜单类型是目录和菜单时都需要,目录类型时填写views下目录名称,菜单类型时填写vue文件所在(子)目录名,下面分开举例。先看一个效果图企业管理是目录类型,企业信息和......