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. bzoj 3673&3674 可持久化并查集&加强版(可持久化线段树+启发式合并)

    CCZ在2015年8月25日也就是初三暑假要结束的时候就已经能切这种题了%%% 学习了另一种启发式合并的方法,按秩合并,也就是按树的深度合并,实际上是和按树的大小一个道理,但是感觉(至少在这题上)更好 ...

  2. [学习笔记]分治FFT

    一般的分治FFT是指: https://www.luogu.org/problemnew/show/P4721 考虑后面的f和前面的f有关系,但是贡献可以分着计算,逐一累计上去. 考虑cdq分治.算出 ...

  3. git使用笔记(十一)rebase

    By francis_hao    Oct 22,2017   git-rebase,改变commit的基础参照 概要 git rebase [-i | --interactive] [options ...

  4. java.lang包学习(转自微学苑)

    Java语言包(java.lang)定义了Java中的大多数基本类,由Java语言自动调用,不需要显示声明.该包中包含了Object类,Object类是整个类层次结构的根结点,同时还定义了基本数据类型 ...

  5. train val test区别

    train是训练集,val是训练过程中的测试集,是为了让你在边训练边看到训练的结果,及时判断学习状态.test就是训练模型结束后,用于评价模型结果的测试集.只有train就可以训练,val不是必须的, ...

  6. ASP.NET基础学习未整理随笔

    利用新建网站添加的项目可以改完代码直接刷新就行 提交到服务程序的表单一定要具有name.<input type="hidden"value="true"n ...

  7. [解决]java.io.IOException: Cannot obtain block length for LocatedBlock

    在hadoop测试集群运行job的过程中发现部分运行失败,有Cannot obtain block length for LocatedBlock,使用hdfs dfs -cat ${文件}的时候也报 ...

  8. git版本回退与撤销操作

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file. 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步, ...

  9. JAVA 枚举单例模式

     1.枚举单例模式的实现 public enum Singleton { INSTANCE { @Override protected void read() { System.out.println ...

  10. github访问速度慢,样式加载不完全解决

    现象如下图: 解决方案: 绑定host 185.31.17.184 github.global.ssl.fastly.net