gridcontrol的列头右键菜单问题

Dev控件GridControl设置了一个右键菜单 this.gridControl1.ContextMenu = contextMenu2; 而GridControl在运行排序的时候,即

gridview1->OptionsCustomization->AllowSort设为true时,控件自带一个英文的右键菜单如下

这样当点击表列头时,就会出现下面的两个右键菜单重叠问题。

这样当点击表列头时,就会出现下面的两个右键菜单重叠问题。

解决办法:

  privatevoid gridView1_MouseUp(object sender, MouseEventArgs e)
        {
            DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo hi = this.gridView1.CalcHitInfo(e.Location);
            if (!hi.InRow && e.Button == MouseButtons.Right)
            {
                ContextMenu emptyMenu = newContextMenu();
                this.gridControl1.ContextMenu = emptyMenu;
            }
            else
            {
                this.gridControl1.ContextMenu = contextMenu2;
            }

        }

下面是解决问题时的两篇参考文献:
Dev控件屏蔽gridcontrol和buttonedit右键菜单

dev控件屏蔽gridcontrol和buttonedit右键菜单,有需要的朋友可以参考下。

DevExpress的很多控件都自带右键菜单,菜单风格又与控件本身差别很多,感觉极不协调,而且都是英文,这篇文章讲述如何屏蔽这些右键菜单。
1.gridcontrol的右键菜单
gridcontrol的右键菜单有两种,第一种是在表格列头右键弹出的菜单,第二种是点击表格列头边上的黑色“钉子”按钮弹出的菜单,
屏蔽它们只需修改属性即可:gridview1->OptionsCustomization->AllowFilter和gridview1->OptionsCustomization->AllowSort改为false
2.buttonEdit和pictureedit的右键菜单
buttonEdit以及pictureEdit的右键菜单无法通过直接设置属性屏蔽,想屏蔽它们需要两行代码:
ContextMenu emptyMenu = new ContextMenu();buttonedit.Properties.ContextMenu = emptyMenu;
即自己定义一个空的右键菜单,赋给buttonedit。

Dev GirdView 去掉系统菜单增加自定义菜单
Dev GirdView 去掉系统菜单增加自定义菜单
1.获取gridview 事件如下:
 private void gridView1_PopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e)
        {
            if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column)//判断是否是列标题的右键菜单
            {
                GridViewColumnMenu menu = e.Menu as GridViewColumnMenu;
                //menu.Items.RemoveAt(6);//移除右键菜单中的第7个功能,从0开始
                menu.Items.Clear();//清除所有功能
                 string strDisp =自己需要增加的右键信息
                 DXMenuItem dxm = new DXMenuItem();
                  dxm.Caption = strDisp;
                  menu.Items.Add(dxm);
            }
        }
2.红色标示第一行清除dev自带的右键系统菜单。
3.红色标示第二行增加自己定义的菜单,可以读取lst 或者datatable 数据集进行赋值。
4.声明DXMenuItem dxm = new DXMenuItem();
5.赋值   dxm.Caption = strDisp;
6.增加自定义数据集 menu.Items.Add(dxm);                 

7.触发右键菜单
 private void gridView1_MouseUp(object sender, MouseEventArgs e)
        {
            DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo hi = this.gridView1.CalcHitInfo(e.Location);
            if (e.Button == MouseButtons.Right)
            {
                this.popupMenu1.ShowPopup(Control.MousePosition);
            }
        }

时间: 2024-10-17 20:06:51

gridcontrol的列头右键菜单问题的相关文章

[WinForm]DataGridView列头右键菜单

[WinForm]DataGridView列头右键菜单 前言 继续"不误正业" - - #,记录一下.有时候有这样的需求:DataGridView的列头菜单可以选择具体显示哪些列,而数据区域的菜单显示增删改查,这样就需要设置两个菜单了,而DataGridView并没有为列头设置菜单的选项,这里分享一段代码. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 一.拖拽一个

[DevExpress]GridControl 同步列头checkbox与列中checkbox状态

关键代码: /// <summary> /// 同步列头checkbox与列中checkbox状态 /// </summary> /// <param name="view">GridView</param> /// <param name="fieldeName">需要绘制Checkbox的列名</param> /// <param name="e">Mouse

DevExpress gridView列标题右键菜单管理

1.添加PopupMenuShowing事件 2.PopupMenuShowing事件中的代码如下: private void gridView1_PopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e) { if (e.MenuType == DevExpress.XtraGrid.Views.Grid.GridMenuType.Column)//判断是否是列标题的右键

RDIFramework.NET框架Web中datagrid与treegrid控件自动生成右键菜单与列标题右键菜单

在实际应用中常可以看到数据展示控件有右键菜单的功能,对应的列标题也可以右键弹出快捷菜单设置指定列的显示与隐藏等功能.在我们的RDIFramework.NET Web框架中,只要是使用了EasyUI的DataGrid与TreeData控件我们已经做了扩展,所有datagrid与treegrid控件都自动拥有了列标题右键弹出快捷菜单设置指定列的显示与隐藏的功能. 1.对于datagrid数据列表区域的右键弹出菜单只需要设置EasyUI的“onRowContextMenu”属性为:pageContex

实现在DevExpress.XtraGrid.GridControl的列头绘制复选框以实现全选的功能

首先新建一个Win Form测试项目,拖一个GridControl控件到窗体上. 1 public partial class Form1 : Form 2 { 3 public Form1() 4 { 5 InitializeComponent(); 6 } 7 8 private Rectangle checkBoxColumnHeaderRect = Rectangle.Empty; 9 private GridColumn checkBoxColumn = null; 10 privat

dev控件屏蔽gridcontrol和buttonedit右键菜单

DevExpress的很多控件都自带右键菜单,菜单风格又与控件本身差别很多,感觉极不协调,而且都是英文,这篇文章讲述如何屏蔽这些右键菜单. 1.gridcontrol的右键菜单 gridcontrol的右键菜单有两种,第一种是在表格列头右键弹出的菜单,第二种是点击表格列头边上的黑色"钉子"按钮弹出的菜单, 屏蔽它们只需修改属性即可:gridview1->OptionsCustomization->AllowFilter和gridview1->OptionsCustom

DataGridView使用技巧九:DataGridView的右键菜单(ContextMenuStrip)

DataGridView,DataGridViewColumn,DataGridViewRow,DataGridViewCell有ContextMenuStrip属性.可以通过设置ContextMenuStrip对象来控制DataGridView的右键菜单的显示. DataGridViewColumn的ContextMenuStrip属性设定除了列头以外的单元格的右键菜单. DataGridViewRow的ContextMenuStrip属性设定除了行头以外的单元格的右键菜单. DataGrid

c#如何仅在datatgirdview控件的头部(列名处)添加右键菜单

近期在弄ArcgisAE实习,其中有一个功能是需要操作图层的属性字段的,为了方便操作图层的属性,最好是在图层的属性表中,也就是在显示图层属性的DataGirdView控件的头部添加一个右键菜单来实现相应的功能. 在c#中有个有一个右键菜单的组建contextMenuStrip,在这个控件里面可以添加一些处理属性字段的功能,然后将这个控件赋予给DataGirdView的contextMenuStrip属性就可以了,然而这种方式在DataGirdView控件的任何地方都会将这个右键菜单显示出来,在行

dev gridcontrol添加右键菜单

概述:右键菜单肯定是GridView中经常要使用的一个功能.本文主要描述两个方面:如何在GridView中添加右键菜单,以及如何设置菜单是否可用(enable). 右键菜单肯定是gridview中经常要使用的一个功能.本文主要描述两个方面:如何在GridView中添加右键菜单,以及如何设置菜单是否可用(enable). 一.添加右键菜单 1.在VS工具箱中的“菜单和工具栏”找到ContextMenuStrip控件,双击添加. 2.点击ContextMenuStrip右上方的小三角形,打开编辑项,