WinForm 控件 DataGridView 常用操作
1、取消列自动生成
在窗体load事件里面设置表格dataGridView的AutoGenerateColumns为 false
dataGridView.AutoGenerateColumns = false
2、取消所有选中单元格
调用方法ClearSelection
dataGridView.ClearSelection()
3、单元格自动换行显示
设置DefaultCellStyle 里面的WarapMode 属性为 true
4、行显示高度自动调节
设置属性 AutoSizeRowMode 为 DisplayedCellsExceptHeaders 设置方法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 常用操作的更多相关文章
- C#窗体控件DataGridView常用设置
在默认情况下,datagridview的显示效果: 1.禁用最后一行空白. 默认情况下,最后一行空白表示自动新增行,对于需要在控件中进行编辑,可以保留 ? 1 dataGridView1.AllowU ...
- 【Winform系列】Winform控件DataGridView添加数据的几种方式
1:直接添加 在控件中设置好每列的名称 例如: DataGridViewRow row = new DataGridViewRow(); int j = dgv.Rows.Add(row); dgv. ...
- WinForm控件复杂数据绑定常用数据源(对Combobox,DataGridView等控件DataSource赋值的多种方法)
开始以前,先认识一下WinForm控件数据绑定的两种形式,简单数据绑定和复杂数据绑定. 1) 简单数据绑定 简单的数据绑定是将用户控件的某一个属性绑定至某一个类型实例上的某一属性.采用如下形式进行绑定 ...
- Winform控件学习笔记【第二天】——常用控件
背景:期末考试刚过就感冒了,嗓子火辣辣的,好难受.但是一想起要学习总结就打起精神来了,Winform控件网上也没有多少使用教程,大部分都是自己在网上零零散散的学的,大部分用的熟了,不总结会很容易忘得. ...
- C#: 线程间操作无效: 从不是创建控件“dataGridView”的线程访问它
最近在修改自动化小工具,用多线程来解决后台拷贝导致WinForm界面卡死的情况,但是遇到过错:线程间操作无效: 从不是创建控件“dataGridView”的线程访问它. 这是因为在多线程程序中,新创建 ...
- WinForm控件使用文章收藏整理完成
对C# WinForm开发系列收集的控件使用方面进行整理, 加入了一些文章, 不断补充充实, 完善这方面. 基础 - 常用控件 C# WinForm开发系列 - CheckBox/Button/Lab ...
- C# WinForm控件、自定义控件整理(大全)
转:http://www.cnblogs.com/top5/archive/2010/04/29/1724039.html 对C# WinForm开发系列收集的控件使用方面进行整理, 加入了一些文章, ...
- C#控件及常用设计整
C#控件及常用设计整 1.窗体 1 2.Label 控件 3 3.TextBox 控件 4 4.RichTextBox控件 5 5.NumericUpDown 控件 7 ...
- Winform控件重写
Winform控件重写 因为最近的项目中越来越多的遇到了比较特殊的一些控件,有时候我们自己封装一下可能更加方便我们的使用,下面是我们项目中用到的,简单做一个记录. TextBox控件重写 主要的控制代 ...
随机推荐
- java对象的引用级别
解释 在java中也有引用的概念,其实就可以认为是变量.标题中的引用级别是指变量与对象之前的引用级别.java中分为4种,按引用强弱关系排序分别是:强引用.软引用.弱引用.虚引用. 强引用(Stron ...
- Mybatis笔记(2)
一.Mybatis的Dao层实现 1.1 代理开发方式介绍 Mapper 接口开发需要遵循以下规范: 1. Mapper.xml文件中的namespace与mapper接口的全限定名相同 2. Map ...
- Cookie及通过Cookie常见应用
会话的概念 会话可以简单理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 会话需要解决的问题 每个用户与服务器进行交互的过程中,各自会有一 ...
- Spring Boot 入门系列(二十四)多环境配置,3分钟搞定!
之前讲过Spring Boot 的系统配置和自定义配置,实现了按照实际项目的要求配置系统的相关熟悉.但是,在实际项目开发过程中,需要面对不同的环境,例如:开发环境,测试环境,生产环境.各个环境的数据库 ...
- Python之requests模块-大文件分片上传
最近在做接口测试时,拿到一个分片上传文件的接口,http接口请求头中的Content-Type为multipart/form-data.需要在客户端将大文件分片成数据块后,依次传给服务端,由服务端还原 ...
- Django+Ansible构建任务中心思路
Ansible作为老牌的自动化运维工具,由Python开发,应用广泛,但其默认只提供了命令行下的使用方式,好在提供有完善的API支持二次开发,可以很方便的集成到我们的自动化运维系统中 最近一个朋友跳槽 ...
- 手写 lodash/get、lodash/set 方法
动机:平时写js代码时经常遇到要使用 lodash 中 _.get 和 _.set 的情况,每次使用都要引用 lodash,总感觉很烦,能不能自己实现一个简单的方法来实现一样的功能呢? get 方法实 ...
- SNMP协议之序言
最近两周公司分配一个任务:使用snmp协议做一个网管,来配置我们的产品.这可以说是我第一次听说这个协议,我问了一下周围的同事这是个什么协议,同事说"简单网络管理协议",其实这个协议 ...
- Asp.net MVC Vue Axios无刷新请求数据和响应数据
Model层Region.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; ...
- 网络层协议、ARP攻击
一.IP数据包格式 二.ICMP协议介绍 PING命令 三.ARP协议介绍 四.ARP攻击原理 一.IP数据包格式 网络层的功能 定义了基于IP协议的逻辑地址 连接不同的媒介类型 选择数据通过网络的最 ...