zoukankan      html  css  js  c++  java
  • 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);
                }
            }
     
     

  • 相关阅读:
    可以在Android上发定时短信
    Java的网络编程初识
    字节流与字符流的区别
    JAVA中的反射机制详解
    C语言C++语言中静态变量和静态函数
    Android网络编程
    C++中const用法总结
    Java中IO操作的基本规律
    面试智力题 (附答案)
    Java网络编程(总结)
  • 原文地址:https://www.cnblogs.com/rwh871212/p/6962029.html
Copyright © 2011-2022 走看看