1、取消列自动生成

在窗体load事件里面设置表格dataGridView的AutoGenerateColumns为 false

dataGridView.AutoGenerateColumns = false

2、取消所有选中单元格

调用方法ClearSelection

dataGridView.ClearSelection()

3、单元格自动换行显示

设置DefaultCellStyle 里面的WarapMode 属性为 true

4、行显示高度自动调节

设置属性 AutoSizeRowModeDisplayedCellsExceptHeaders 设置方法AutoResizeColumns

dataGridView.AutoSizeRowsMode=DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
dataGridView.AutoResizeColumns();

5、首列添加序号

表格RowPostPaint事件

 private void dataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
//获取行对象
var row = dataGridView.Rows[e.RowIndex];
//对行的第一列value赋值
row.Cells[0].Value = row.Index + 1;
}

6、行头绘制图片

表格RowPostPaint事件绘制图片或者数字

 private void dataGridView_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
//读取要显示的图片
Image img = Properties.Resources.img
//绘制图标,图标绘制的坐标位置可自己调节
e.Graphics.DrawImage(img, e.RowBounds.Left + dataGridView.RowHeadersWidth - 40, e.RowBounds.Top + 4, 16, 16);
}

7、转换单元格显示

在表格的CellFormatting事件里面进行转换操作,比如一个状态字段是int类型,显示需要转换成对应的字符串显示。

private void dataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
//转换第一列
if (e.ColumnIndex == 0)
{
//取得行
var row = dataGridView.Rows[e.RowIndex];
//取得列值,如果是绑定的数据,可以将row.DataBoundItem转换成绑定对象再取值判断
var cell=row.cell[0].value.ToString();
string grad = "";
if cell == "1")
grad = "A";
else if (cell == "2")
grad = "B";
else if (cell == "3")
grad = "C";
else if (cell == "4")
grad = "D";
else if (cell == "5")
grad = "E";
e.Value = grad;
} }

8、右键选中单元格

在表格的CellMouseDown事件里面设置选中行

private void dataGridView_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right && e.RowIndex > -1 && e.ColumnIndex > -1)
{
dataGridView.CurrentRow.Selected = false;
dataGridView.Rows[e.RowIndex].Selected = true;
}
}

9、修改单元格值,单行刷新重绘

//dgvBook.SelectedRows[0].Index 为要刷新的行号
dataGridView.InvalidateRow(dgvBook.SelectedRows[0].Index);

WinForm 控件 DataGridView 常用操作的更多相关文章

  1. C#窗体控件DataGridView常用设置

    在默认情况下,datagridview的显示效果: 1.禁用最后一行空白. 默认情况下,最后一行空白表示自动新增行,对于需要在控件中进行编辑,可以保留 ? 1 dataGridView1.AllowU ...

  2. 【Winform系列】Winform控件DataGridView添加数据的几种方式

    1:直接添加 在控件中设置好每列的名称 例如: DataGridViewRow row = new DataGridViewRow(); int j = dgv.Rows.Add(row); dgv. ...

  3. WinForm控件复杂数据绑定常用数据源(对Combobox,DataGridView等控件DataSource赋值的多种方法)

    开始以前,先认识一下WinForm控件数据绑定的两种形式,简单数据绑定和复杂数据绑定. 1) 简单数据绑定 简单的数据绑定是将用户控件的某一个属性绑定至某一个类型实例上的某一属性.采用如下形式进行绑定 ...

  4. Winform控件学习笔记【第二天】——常用控件

    背景:期末考试刚过就感冒了,嗓子火辣辣的,好难受.但是一想起要学习总结就打起精神来了,Winform控件网上也没有多少使用教程,大部分都是自己在网上零零散散的学的,大部分用的熟了,不总结会很容易忘得. ...

  5. C#: 线程间操作无效: 从不是创建控件“dataGridView”的线程访问它

    最近在修改自动化小工具,用多线程来解决后台拷贝导致WinForm界面卡死的情况,但是遇到过错:线程间操作无效: 从不是创建控件“dataGridView”的线程访问它. 这是因为在多线程程序中,新创建 ...

  6. WinForm控件使用文章收藏整理完成

    对C# WinForm开发系列收集的控件使用方面进行整理, 加入了一些文章, 不断补充充实, 完善这方面. 基础 - 常用控件 C# WinForm开发系列 - CheckBox/Button/Lab ...

  7. C# WinForm控件、自定义控件整理(大全)

    转:http://www.cnblogs.com/top5/archive/2010/04/29/1724039.html 对C# WinForm开发系列收集的控件使用方面进行整理, 加入了一些文章, ...

  8. C#控件及常用设计整

    C#控件及常用设计整 1.窗体    1 2.Label 控件    3 3.TextBox 控件    4 4.RichTextBox控件    5 5.NumericUpDown 控件    7 ...

  9. Winform控件重写

    Winform控件重写 因为最近的项目中越来越多的遇到了比较特殊的一些控件,有时候我们自己封装一下可能更加方便我们的使用,下面是我们项目中用到的,简单做一个记录. TextBox控件重写 主要的控制代 ...

随机推荐

  1. Windows CMD .bat 批处理基础语法

    格式 @echo off 代码..... pause 不会逐行将命令打印. rem [注释] 关键字注释. :: [注释] 符号注释. echo 打印到控制台. >> 输出重定向.追加. ...

  2. Linkerd 2.10(Step by Step)—配置重试

    Linkerd 2.10 系列 快速上手 Linkerd v2 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traefik2 ...

  3. java《设计原则-里氏替换原则》

    package dubbo.wangbiao.project.ThreadAndSocket.designprinciples.lishitihuanyuanze.k0; //长方形 public c ...

  4. 3k+2形式的素数相关的两个命题的证明

  5. Linux centos7 mysql 的安装配置

    2021-07-21 1. 创建用户 # 创建用户useradd mysql# 修改密码 passwd mysql 2. 下载 wget 网址 3. 解压 # 创建安装文件夹mkdir app# 解压 ...

  6. Servlet学习笔记(三)之HttpServletResponse

    init() 方法中参数 ServletConfig 对象使用 通过ServletConfig 获得 ServletContext对象 使用 HttpServletRequest 与HttpServl ...

  7. HashMap 为什么线程不安全?

    作者:developer http://cnblogs.com/developer_chan/p/10450908.html 我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线 ...

  8. Redis单节点安装与使用

    1.配置阿里云yum源 下载配置文件 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7 ...

  9. 论文解读(PCL)《Prototypical Contrastive Learning of Unsupervised Representations》

    论文标题:Prototypical Contrastive Learning of Unsupervised Representations 论文方向:图像领域,提出原型对比学习,效果远超MoCo和S ...

  10. php在类中使用回调函数 如array_map

    <?php class foo {   var $var;   function bar() {      array_map(array($this, "baz"), ar ...