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的很多控件都自带右键菜单,菜单风格又与控件本身差别很多,感觉极不协调,而且都是英文,这篇文章讲述如何屏蔽这些右键菜单。
.gridcontrol的右键菜单
gridcontrol的右键菜单有两种,第一种是在表格列头右键弹出的菜单,第二种是点击表格列头边上的黑色“钉子”按钮弹出的菜单,
屏蔽它们只需修改属性即可:gridview1->OptionsCustomization->AllowFilter和gridview1->OptionsCustomization->AllowSort改为false
.buttonEdit和pictureedit的右键菜单
buttonEdit以及pictureEdit的右键菜单无法通过直接设置属性屏蔽,想屏蔽它们需要两行代码:
ContextMenu emptyMenu = new ContextMenu();buttonedit.Properties.ContextMenu = emptyMenu;
即自己定义一个空的右键菜单,赋给buttonedit。 Dev GirdView 去掉系统菜单增加自定义菜单
Dev GirdView 去掉系统菜单增加自定义菜单
.获取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);
}
}
.红色标示第一行清除dev自带的右键系统菜单。
.红色标示第二行增加自己定义的菜单,可以读取lst 或者datatable 数据集进行赋值。
.声明DXMenuItem dxm = new DXMenuItem();
.赋值 dxm.Caption = strDisp;
.增加自定义数据集 menu.Items.Add(dxm); .触发右键菜单
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);
}
}
 
 

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

  1. [WinForm]DataGridView列头右键菜单

    [WinForm]DataGridView列头右键菜单 前言 继续"不误正业" - - #,记录一下.有时候有这样的需求:DataGridView的列头菜单可以选择具体显示哪些列, ...

  2. Easyui datagrid 数据表格 表格列头右键菜单选择展示列 JS

    Easyui ,数据表格加载出来以后,在表格头右键,会有显示筛选的功能: 如图: 然后可以取消勾选,就变成下面这个样子: 功能的实现是通过重写了easyui 的 $.fn.datagrid.defau ...

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

    在实际应用中常可以看到数据展示控件有右键菜单的功能,对应的列标题也可以右键弹出快捷菜单设置指定列的显示与隐藏等功能.在我们的RDIFramework.NET Web框架中,只要是使用了EasyUI的D ...

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

    关键代码: /// <summary> /// 同步列头checkbox与列中checkbox状态 /// </summary> /// <param name=&quo ...

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

    首先新建一个Win Form测试项目,拖一个GridControl控件到窗体上. public partial class Form1 : Form { public Form1() { Initia ...

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

    DataGridView,DataGridViewColumn,DataGridViewRow,DataGridViewCell有ContextMenuStrip属性.可以通过设置ContextMen ...

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

    近期在弄ArcgisAE实习,其中有一个功能是需要操作图层的属性字段的,为了方便操作图层的属性,最好是在图层的属性表中,也就是在显示图层属性的DataGirdView控件的头部添加一个右键菜单来实现相 ...

  8. DataGridView右键菜单自定义显示及隐藏列

    WinForm程序中表单的列可自定义显示及隐藏,是一种常见的功能,对于用户体验来说是非常好的.笔者经过一段时间的摸索,终于实现了自己想要的功能及效果,现记录一下过程: 1.新建一个自定义控件,命名为: ...

  9. [DevExpress]GridControl 列头绘制Checkbox

    关键代码: /// <summary> /// 为列头绘制CheckBox /// </summary> /// <param name="view" ...

随机推荐

  1. bzoj1051: [HAOI2006]受欢迎的牛(tarjan强连通分量)

    强连通缩下点,出度为0有多个答案为0,否则答案为出度为0的强连通分量中点的个数. 发现一道tarjan模板题,顺便复习一波tarjan #include<iostream> #includ ...

  2. BZOJ1509 NOI2003 逃学的小孩

    Description: Input: 第一行是两个整数N(3  N  200000)和M,分别表示居住点总数和街道总数.以下M行,每行给出一条街道的信息.第i+1行包含整数Ui.Vi.Ti(1 ...

  3. mysql五补充部分:SQL逻辑查询语句执行顺序

    一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOI ...

  4. mysql中的case when 与if else

    大神说:在sql中,能用if else  就不用case  when 下面来看看,具体为什么,没有搞清楚,如果有大神知道的提供下资料: Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制 ...

  5. c++ string写时复制

    string写时复制:将字符串str1赋值给str2后,除非str1的内容已经被改变,否则str2和str1共享内存.当str1被修改之后,stl才为str2开辟内存空间,并初始化. #include ...

  6. zookeeper的maxSessionTimeout默认值导致hbase regionserver超时

    zookeeper的maxSessionTimeout默认值导致hbase regionserver超时 在hbase中经常会遇到regionserver挂掉的情况,查看日志会看到这样的错误信息 20 ...

  7. 【JAVA】Pattern和Matcher

    ZZ: Java正则表达式:Pattern类和Matcher类 一.捕获组的概念 捕获组可以通过从左到右计算其开括号来编号,编号是从1 开始的.例如,在表达式 ((A)(B(C)))中,存在四个这样的 ...

  8. iOS排序

    NSArray *originalArray = @[@,@,@,@,@]; //block比较方法,数组中可以是NSInteger,NSString(需要转换) NSComparator finde ...

  9. Windows下端口占用查看

    假如我们需要确定谁占用了我们的80端口 1.Windows平台在windows命令行窗口下执行:C:\>netstat -aon|findstr "80" TCP     1 ...

  10. JS 本地属性与继承属性

    判断是否拥有某种属性 1.in 运算符 var obj = {name:'jack'}; alert('name' in obj); // --> true alert('toString' i ...