Datagridview使用技巧(9)Datagridview的右键菜单

 更新时间:2017年05月06日 13:49:29   作者:.NET开发菜鸟  
这篇文章主要为大家详细介绍了Datagridview使用技巧,Datagridview的右键菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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的情况。

示例一:

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

示例二:

private void dgv_Users_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e)
{
 DataGridView dgv = sender as DataGridView;
 if (e.RowIndex < 0)
 {
   //设置列头右键
   e.ContextMenuStrip = cmsHeaderCell;
 }
 else if (e.ColumnIndex < 0)
 { 
   //设置行头右键菜单
   e.ContextMenuStrip = cmsRow;
  }
  else if (dgv[e.ColumnIndex, e.RowIndex].Value.ToString().Equals("男"))
  {
   e.ContextMenuStrip = cmsCell;
  }
  else
  {
   e.ContextMenuStrip = cmsDgv;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#中DateTime的时间加减法操作小结

    C#中DateTime的时间加减法操作小结

    本文主要介绍了C#中DateTime的时间加减法操作小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • C#操作ftp类完整实例

    C#操作ftp类完整实例

    这篇文章主要介绍了C#操作ftp类,以一个完整实例形式详细分析了C#操作FTP文件传输所涉及的FTP连接、文件传输、参数设置、文件删除等技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • C#实现加密与解密详解

    C#实现加密与解密详解

    本文详细讲解了C#实现加密与解密详解的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • C# SQLite序列操作实现方法详解

    C# SQLite序列操作实现方法详解

    这篇文章主要介绍了C# SQLite序列操作实现方法,结合实例形式详细分析了C#实现SQLite序列操作的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • C#自定义Key类型的字典无法序列化的解决方案详解

    C#自定义Key类型的字典无法序列化的解决方案详解

    当我们使用System.Text.Json.JsonSerializer对一个字典对象进行序列化的时候,默认情况下字典的Key不能是一个自定义的类型,本文整理了几种解决方案,希望对大家有所帮助
    2024-03-03
  • C# OpenCvSharp 颜色反转实例详解

    C# OpenCvSharp 颜色反转实例详解

    OpenCVSharp是OpenCV的.NET wrapper,它比Emgucv更接近于原始的OpenCV,并且有很多的样例参考,其采用LGPL发行,对商业应用友好(基本上相当于BSD),这篇文章主要介绍了C# OpenCvSharp 颜色反转的知识,需要的朋友可以参考下
    2024-02-02
  • WPF利用ScottPlot实现动态绘制图像

    WPF利用ScottPlot实现动态绘制图像

    ScottPlot是基于.Net的一款开源免费的交互式可视化库,支持Winform和WPF等UI框架,本文主要为大家详细介绍了如何WPF如何使用ScottPlot实现动态绘制图像,需要的可以参考下
    2023-12-12
  • 浅析C#中文件路径的操作

    浅析C#中文件路径的操作

    在.NET类库中,有一个专门的功能类System.IO.Path,对表示文件或在目录路径的string进行操作。本文介绍下利用Path来对文件路径进行的一些经常用操作。感兴趣的朋友可以看下
    2016-12-12
  • C#获取指定目录下某种格式文件集并备份到指定文件夹

    C#获取指定目录下某种格式文件集并备份到指定文件夹

    这篇文章介绍了C#获取指定目录下某种格式文件集并备份到指定文件夹的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#开发微信门户及应用(1) 微信接口使用

    C#开发微信门户及应用(1) 微信接口使用

    这篇文章主要为大家详细介绍了C#开发微信门户及应用第一篇,微信接口的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06

最新评论