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

news/2024/10/21 15:23:33

使用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 }

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/74203.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2024年游戏买量应该怎么玩?

App中运行小游戏的技术价值和业务价值都是显著的:通过小程序容器技术,承载多样化的小游戏运行在自有App内,实现跨平台的游戏资源共享,降低买量成本,此为「降本」。进一步的,在App内快速引入多小游戏应用,为用户提供多样化的内容,以提升App内用户体验和留存率,增强用户…

JAVA基础之十-不常用但是又希望能看懂的关键字/保留字

对于绝大部分JAVA工程师而言,大部分的关键字也是能够看懂的,但还是相当一部分比较不常见的关键字,妨碍了代码阅读。 本文力图收集一些个人认为在CRUD机械工作中可能比较少见的一些关键字/保留字。 此类关键字主要用于修饰方法和类。 收集过程会持续一段时间,现在暂时没有时间…

django admin 后台中添加自定义的 html 页面

实现效果配置 简历模板html 文件{% extends "admin/base_site.html" %}{% block content %} <h1>自定义 HTML 页面</h1> <p>{{ your_variable }}</p> {% endblock %}admin 中添加代码, 主要是 get_urls 以及 对应的的视图from django.urls i…

国内外开源项目管理工具软件有哪些

不错的开源项目管理工具软件有:1. Redmine;2. Taiga;3. OpenProject;4. Tuleap;5. Odoo Project。比如Redmine是一款受到广大用户赞誉的开源项目管理工具,已被像GitHub、NASA和CERN这样的知名客户所采用。其核心能力在于灵活的问题跟踪和多项目管理。开源项目管理软件特别…

018 姓名案例

这么写有点小问题,效率不高,我们考虑计算属性来做

malloc底层实现以及和new的比较

背景: 前几天去面试,被问到了一个问题:“malloc的底层实现是怎样的? 怎样防止内存碎片?” 当时答的不够好,现在再整理一下。 (本文档通过收集整理网上博客而来。先挖个坑,等有时间了去看一下《深入理解操作系统》的第九章虚拟内存,再重新整理一篇) 内存布局 Linux中每…

017 事件总结

如果要达成多个效果,如既要阻止冒泡,又要阻止跳转.修饰符可以连续写

Java 当中使用 “google.zxing ”开源项目 和 “github 的 qrcode-plugin” 开源项目 生成二维码

Java 当中使用 “google.zxing ”开源项目 和 “github 的 qrcode-plugin” 开源项目 生成二维码 @目录Java 当中使用 “google.zxing ”开源项目 和 “github 的 qrcode-plugin” 开源项目 生成二维码1. Java当中使用 “google.zxing ” 开源项目生成二维码1.1 准备工作1.2 生…