DataGridView,DataGridViewColumn,DataGridViewRow,DataGridViewCell有ContextMenuStrip属性。可以通过设置ContextMenuStrip对象来控制DataGridView的右键菜单的显示。

DataGridViewColumn的ContextMenuStrip属性设定除了列头以外的单元格的右键菜单。

DataGridViewRow的ContextMenuStrip属性设定除了行头以外的单元格的右键菜单。

DataGridViewCell的ContextMenuStrip属性设定指定单元格的右键菜单。

对于单元格上的右键菜单的设定,优先顺序是:Cell>Row>Column>DataGridView

利用CellContextMenuStripNeeded、RowContextMenuStripNeeded事件可以设定单元格的右键菜单,尤其是需要右键菜单根据单元格值的变化而变化的时候。比起使用循环遍历,使用该事件来设定右键菜单的效率更高。

说明:CellContextMenuStripNeeded事件处理方法的参数中,e.RowIndex=-1表示列头,e.ColumnIndex=-1表示行头。RowContextMenuStripNeeded则不存在e.ColumnIndex=-1的情况。

示例一:

  1. //设置DataGridView的右键菜单
  2. this.dgv_Users.ContextMenuStrip = cmsDgv;
  3. //设置列的右键菜单
  4. this.dgv_Users.Columns[].ContextMenuStrip = cmsColumn;
  5. //设置列头的右键菜单
  6. this.dgv_Users.Columns[].HeaderCell.ContextMenuStrip = cmsHeaderCell;
  7. //设置行的右键菜单
  8. this.dgv_Users.Rows[].ContextMenuStrip = cmsRow;
  9. //设置单元格的右键菜单
  10. this.dgv_Users[, ].ContextMenuStrip = cmsCell;

示例二:

  1. private void dgv_Users_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e)
  2. {
  3. DataGridView dgv = sender as DataGridView;
  4. if (e.RowIndex < )
  5. {
  6. //设置列头右键
  7. e.ContextMenuStrip = cmsHeaderCell;
  8. }
  9. else if (e.ColumnIndex < )
  10. {
  11. //设置行头右键菜单
  12. e.ContextMenuStrip = cmsRow;
  13. }
  14. else if (dgv[e.ColumnIndex, e.RowIndex].Value.ToString().Equals("男"))
  15. {
  16. e.ContextMenuStrip = cmsCell;
  17. }
  18. else
  19. {
  20. e.ContextMenuStrip = cmsDgv;
  21. }
  22. }

DataGridView使用技巧九:DataGridView的右键菜单(ContextMenuStrip)的更多相关文章

  1. sublime使用技巧之添加到右键菜单、集成VI

    熟悉开发工具,减少多余的操作流程有助于提高开发效率,而Sublime Text 2是sublime产品的经典版本,因此本文基于Sublime Text 2讲解sublime的使用技巧. VI的主要作用 ...

  2. C# 右键菜单 contextMenuStrip

    1.添加contextMenuStrip控件 默认命名:contextMenuStrip1 2.在要显示的控件上,找到其ContextMenuStrip属性,并设置其为contextMenuStrip ...

  3. 【C#】分享一个弹出容器层,像右键菜单那样召即来挥则去

    适用于:.net2.0+ Winform项目 ------------------201508261813更新(源码有更新.Demo未更新)------------------ 重新绘制调整大小手柄( ...

  4. [转]【C#】分享一个弹出浮动层,像右键菜单那样召即来挥则去

    适用于:.net2.0+ Winform项目 背景: 有时候我们需要开一个简单的窗口来做一些事,例如输入一些东西.点选一个item之类的,可能像这样: 完了返回原窗体并获取刚刚的输入,这样做并没有什么 ...

  5. C# DataGridView添加右键菜单的简单应用

    首先,参考了下以下文章: https://blog.csdn.net/qin_zhangyongheng/article/details/23773757 感谢. 项目中要在DataGridView中 ...

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

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

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

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

  8. Windows右键菜单设置与应用技巧

    http://blog.163.com/lee_honleon/blog/static/555251522008014258896/   需要修改注册表,挺麻烦的.最好还是把迅雷卸了重装,不会影响什么 ...

  9. DataGridView使用技巧(七、设定列宽和行高自动调整)----.NET

    DataGridView使用技巧(七.设定列宽和行高自动调整)----.NET 1) 设定行高和列宽自动调整 [VB.NET]' 设定包括Header和所有单元格的列宽自动调整DataGridView ...

随机推荐

  1. 页面livereload width grunt

    step-1.   安装node 环境 step-2.  npm  install grunt-cli  \ grunt http://www.gruntjs.net/docs/getting-sta ...

  2. python学习笔记013——模块中的私有属性

    1 私有属性的使用方式 在python中,没有类似private之类的关键字来声明私有方法或属性.若要声明其私有属性,语法规则为: 属性前加双下划线,属性后不加(双)下划线,如将属性name私有化,则 ...

  3. Unix环境高级编程(二)文件和目录

    本章主要介绍的是文件结构及目录.重点是通过stat函数获取文件的结构信息,然后是文件目录及其遍历.学完本章后,编写了一个输出给的目录下的文件信息的程序. 首先是包含在<sys/stat.h> ...

  4. java怎样获得JVM可能的总内存,最大内存,以及空暇内存?

    public class Demo2 { public static void main(String[] args) { DecimalFormat df = new DecimalFormat(& ...

  5. 在linux下导入.sql文件,数据库中文乱码

    现象描述 我是在aix下面导入如下SQL语句时,数据库中显示乱码. insert into CONFERENCE(CONFERENCEID,SUBCONFERENCEID,ACCESSNUMBER,A ...

  6. powerdesigner学习笔记【转载】

    转自:http://blog.itpub.net/11968859/viewspace-620440/ 谢谢! 1.做CDM模型的时候,因为开始定义ITEM的时候,没有注意把NAME和CODE全定义成 ...

  7. verilog中的default应该赋什么样的值

    Q:在状态机的case语句中,最后要加上默认项default,可是我看到有的书上写的是一个确定的状态,有的则是不定态xxx,到底应该写那个啊?求助! A1:取决于case条件是否完备啦如果你的case ...

  8. 玩转oracle学习第七天

     1.上节回想 2.PL/SQL的进阶 3.oracle的视图 4.oracle的触发器 目标: 1.掌握PL/SQL的高级使用方法(能编写分页过程模块,下订单过程模块.. . ) 2.会处理or ...

  9. 使用自定义的按钮替换默认的<input type='file'>

    可以通过让默认的input type = 'file'按钮透明度变为0,并且让它刚好覆盖在自定义的按钮上,来实现此效果: 将它写成一个jQuery插件: (function($){ $.fn.brow ...

  10. version `GLIBC_2.14' not found 解决方法.

    from http://blog.csdn.net/force_eagle/article/details/8684669 version `GLIBC_2.14' not found 解决方法. 一 ...