服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - DataGridView清除显示的数据、设定右键菜单

DataGridView清除显示的数据、设定右键菜单

2023-02-15 16:07.NET开发菜鸟 C#

这篇文章介绍了DataGridView清除显示的数据、设定右键菜单的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、清空数据

1、DataGridView未绑定数据时清空数据

?
1
this.dgv_PropDemo.DataSource = null

2、DataGridView绑定数据时清空数据

DataGridView绑定了数据就不能使用this.dgv_PropDemo.DataSource = null清空数据了,使用this.dgv_PropDemo.DataSource = null不仅会清空数据,而且也会把DataGridView的列清空掉,这时就要使用如下的代码清空显示的数据:

?
1
2
3
DataTable dt = this.dgv_PropDemo.DataSource as DataTable;
dt.Rows.Clear();
this.dgv_PropDemo.DataSource = dt;

二、设定右键菜单 

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
2
3
4
5
6
7
8
9
10
//设置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;

示例二:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;
     }
}

到此这篇关于DataGridView清除显示的数据、设定右键菜单的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/dotnet261010/p/6815771.html

延伸 · 阅读

精彩推荐
  • C#c# 日历控件的实现

    c# 日历控件的实现

    这篇文章主要介绍了c# 实现日历的示例代码,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...

    哈哈哈嗝10012022-10-19
  • C#C#实现的文件操作封装类完整实例【删除,移动,复制,重命名】

    C#实现的文件操作封装类完整实例【删除,移动,复制,重命名】

    这篇文章主要介绍了C#实现的文件操作封装类,结合完整实例形式分析了C#封装文件的删除,移动,复制,重命名等操作相关实现技巧,需要的朋友可以参考下...

    Rising_Sun4072021-12-28
  • C#C# List 排序各种用法与比较

    C# List 排序各种用法与比较

    这篇文章主要介绍了C# List 排序各种用法与比较的相关资料,需要的朋友可以参考下...

    alun-chen12052021-12-07
  • C#C#实现的Windows剪贴板监视器功能实例【附demo源码下载】

    C#实现的Windows剪贴板监视器功能实例【附demo源码下载】

    这篇文章主要介绍了C#实现的Windows剪贴板监视器功能,结合实例形式分析了C#实现剪贴板监视功能所涉及的相关Windows API函数与使用技巧,需要的朋友可以参考...

    微wx笑9132021-12-03
  • C#Graphics.DrawImage绘制的图像变大的原因分析及解决

    Graphics.DrawImage绘制的图像变大的原因分析及解决

    这篇文章主要介绍了Graphics.DrawImage绘制的图像变大的原因分析及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝...

    yimi_tianjin6682022-12-08
  • C#自定义WPF分页控件的全过程记录

    自定义WPF分页控件的全过程记录

    接触WPF也有一段时间了,最近遇到了一个自定义分页控件的功能,感觉可以分享下面,所以这篇文章主要介绍了自定义WPF分页控件的相关资料,需要的朋友...

    Dwaynerbing3592022-11-20
  • C#C#使用Redis的基本操作

    C#使用Redis的基本操作

    这篇文章主要介绍了C#使用Redis的基本操作,需要的朋友可以参考下...

    请叫我小冯哥哥3802022-01-11
  • C#Unity3D Shader实现镜子效果

    Unity3D Shader实现镜子效果

    这篇文章主要为大家详细介绍了Unity3D Shader实现镜子效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    忘夕6982022-09-06