WinForm中DataGridView的使用(一) - 基本使用
- 数据绑定
- 直接指定源数据(List<T>):this.DataSource = data;
- 通常也可以直接指定DataTable类型的数据
DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn(_column1Name, Type.GetType("System.String"));
dt.Columns.Add(dc1);
foreach (string searchText in VisualXmlApp.Instance.searchHistoryGridView.Take())
{
DataRow dr = dt.NewRow();
dr[_column1Name] = searchText;
dt.Rows.Add(dr);
}
this.dgvDataSourceSearchHistory.DataSource = dt;
- 自定义列
- 取消自动生成列:this.AutoGenerateColumns = false;
- 自定义列数、列名、列宽权重、列填充
this.Columns.Clear();
this.ColumnCount = ;
this.Columns[].Name = "Column 1";
this.Columns[].DataPropertyName = "VarName";
this.Columns[].FillWeight = ;
this.Columns[].Name = "Column 2";
this.Columns[].DataPropertyName = "VarPath";
this.Columns[].FillWeight = ;
this.Columns[].Name = "Column 2";
this.Columns[].FillWeight = ;
- 样式
- 整体背景色(当窗口变大时,空白处的颜色)
- this.BackgroundColor = DataSourceUIParams.WindowBackColor;
- 边框
- 风格
- DataGridView.BorderStyle
- BorderStyle 枚举: FixedSingle(单线,默认)、Fixed3D、None
- 颜色(所有边框,含普通数据行和头部)
- this.GridColor = Color.FromArgb(173, 190, 203);
- 如果要头部生效,别忘了取消系统风格影响:this.EnableHeadersVisualStyles=false;
- 默认是 ControlDarkDark 。但是只有在 CellBorderStyle 被设定为 Single、SingleHorizontal、SingleVertical 的条件下才能改变其边框线的颜色。
- 如果是自定义了一个控件继承自DataGridView,那么即使在这个控件中设置了不显示边框,在父控件中仍然需要再设置一次其BorderStyle = BorderStyle.None;
- 其他可参考(如颜色、四个方位边框的单独设置):https://blog.csdn.net/yunhaic/article/details/7176015
- 风格
- 头部
- 取消使用系统风格:this.EnableHeadersVisualStyles = false;
- 行头
- 取消显示行头
- this.RowHeadersVisible = false;
- 边框
- 风格
- 直接设置RowHeadersBorderStyle,默认是DataGridViewHeaderBorderStyle.Raised,可改为Single、None等。属性设定值是DataGridViewHeaderBorderStyle枚举的值
- 风格
- 取消显示行头
- 列头
- 取消显示列头
- this.ColumnHeadersVisible = false;
- 高度
- 先把ColumnHeadersHeightSizeMode从默认的AutoSize设置为EnableResizing
- 再用ColumnHeadersHeight直接设置高度
- 注:代码构造函数中直接设置这两个属性也可以
- 注:将DataGridView设置固定高度,并自动显示滚动条时,如果Header高度是AutoSize的,可能会使最后一行显示不全
- 字体
- 边框
- 风格
- 直接设置ColumnHeadersBorderStyle,默认是DataGridViewHeaderBorderStyle.Raised,可改为Single、None等。属性设定值是DataGridViewHeaderBorderStyle枚举的值
- 同样,ColumnHeadersBorderStyle只能设定单元格全部边框线的式样。要单独改变单元格某一边边框式样的话,需要用到设定行头单元格的属性是: RowHeadersBorderStyle, 设定列头单元格属性是:ColumnHeadersBorderStyle
- 风格
- 取消显示列头
- 数据行
- 高度
- this.RowTemplate.Height = 30;
- 奇偶行
- 背景色
- this.AlternatingRowsDefaultCellStyle.BackColor = Color.FromArgb(223, 230, 237);
- this.RowsDefaultCellStyle.BackColor = Color.White;
- 背景色
- 边框
- 风格
- 直接设置CellBorderStyle,默认为BorderStyle.FixedSingle,但这个时候底边框有可能消失,可以考虑改为BorderStyle.Fixed3D
- CellBorderStyle只能设定单元格全部边框线的式样。要单独改变单元格某一边边框式样的话,需要用到DataGridView.AdvancedCellBorderStyle属性。
- 风格
- 高度
- 整体背景色(当窗口变大时,空白处的颜色)
- 是否可编辑、新增、删除
- this.ReadOnly = true;
- this.AllowUserToAddRows = false;
- this.AllowUserToDeleteRows = false;
- 是否可调整列宽、行宽
- this.AllowUserToResizeColumns = false;
this.AllowUserToResizeRows = false;
- this.AllowUserToResizeColumns = false;
- 是否可选中及选中模式
- 是否可多选:this.MultiSelect = false;
- 设置选中模式
- 直接设置SelectionMode属性,包括DataGridViewSelectionMode.FullRowSelect等选项
- 取消首行或首个单元格的默认选中
- 在DataGridView的RowsPrePaint事件处理函数中
private void RowsPrePaintHandler(object sender, DataGridViewRowPrePaintEventArgs e)
{
int index = e.RowIndex; // cancel default selected first row
if (index == )
{
this.Rows[index].Selected = false;
}
}
- 在DataGridView的RowsPrePaint事件处理函数中
WinForm中DataGridView的使用(一) - 基本使用的更多相关文章
- winform中dataGridView单元格根据值设置新值,彻底解决绑定后数据类型转换的困难
// winform中dataGridView单元格在数据绑定后,数据类型更改困难,只能迂回实现.有时候需要将数字变换为不同的文字描述,就会出现int32到string类型转换的异常,借助CellFo ...
- winform中dataGridView隔行显示不同的背景色,鼠标移动上显示不同颜色,离开后变回原色
winform中dataGridView隔行显示不同的背景色,鼠标移动上显示不同颜色,离开后变回原色 先设置奇数行颜色,这个有个自带的属性AlternatingRowsDefaultCellStyle ...
- 【接上一篇】winform中dataGridView高度和宽度自适应填充完数据的高度和宽度,即dataGridView根据数据自适应大小
上一篇:winform中dataGridView高度自适应填充完数据的高度 winform中dataGridView高度自适应填充完数据的高度,就是dataGridView自身不产生滚动条,自己的高度 ...
- winform中dataGridView高度自适应填充完数据的高度
// winform中dataGridView高度自适应填充完数据的高度,就是dataGridView自身不产生滚动条,自己的高度是根据数据的多少而变动. 在load的时候,数据绑定后,加上如下代码: ...
- C# Winform中DataGridView的DataGridViewCheckBoxColumn使用方法
下面介绍Winform中DataGridView的DataGridViewCheckBoxColumn使用方法: DataGridViewCheckBoxColumn CheckBox是否选中 在判断 ...
- WinForm中DataGridView复制选中单元格内容解决方案
WinForm中DataGridView鼠标选中单元格内容复制方案 1.CTR+C快捷键复制 前提:该控件ClipboardCopyMode属性设置值非Disable: 2.鼠标框选,自定义代码实现复 ...
- winform中DataGridView实现分页功能
WinForm轻松实现自定义分页 (转载) WinForm轻松实现自定义分页 (转载) 转载至http://xuzhihong1987.blog.163.com/blog/static/26731 ...
- Winform 中DataGridView控件添加行标题
有很多种方法. 1.可以在DataGridView控件中的RowStateChanged事件改变行标题单元格的值(Row.HeaderCell.Value) /// <summary> / ...
- Winform 中DataGridView的checkbox列,当修改checkbox状态时实时获得其状态值
不知道大家有没有这样的经验,当点击或者取消datagridview的checkbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作,下面就列出它的解决办法: 主要用到了DataGridV ...
- WinForm中DataGridView显示更新数据--人性版
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
随机推荐
- 事务ACID如何定义,事务隔离性解决的问题
挚享科技 2018.4.8 事务的四个特性: 1. 原子性: 同一个事务的多个操作,要么都成功,要么全部失败回滚. 2. 一致性: 事务必须确保数据库从一个一致性状态变换为另一个一致性状态. 其实就是 ...
- IOS初级:AFNetworking
狗 日的,第三方框架真j8难搞 1.为什么NS_ASSUME_NONNULL_BEGIN在6.2报错,你他么的还挑IDE,你这是什么态度? 2.还有,你他么的自动给老子转json了,有问过我么? #i ...
- [C#.Net]KeyDown(KeyUp)和KeyPress的区别
在keyDown事件里使用keyValue:在keyPress事件里使用keyChar. keyValue转换keyChar:(char)keyValue 验证只有数字和backSpace e.han ...
- 乘积最大(NOIP2000&NOIP水题测试(2017082301))
题目链接:乘积最大 这道题显然是道区间dp. 难度不是很大. 思路也很清晰. 我们设计一个三维状态. ans[l][r][k] 这里表示在闭区间[l,r]上操作k次的最大值. 操作就是加乘号. 转移也 ...
- PHP删除空格函数
删除空格或其他字符的相关函数 ltrim函数 描述:实现删除字符串开始位置的空格或其他字符 语法:string ltrim(string $str [,string $charlist]) 说明:ch ...
- CentOS Linux更改MySQL数据库目录位置具体操作
引言: 由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录. 下面我整理一下把MySQL从/var/lib/mysql目录下面转移到/ho ...
- Enjoy Markdown!
有一个神奇的语言,比HTML简单,它巧妙地将内容与格式结合在一起,它就是Markdown! 下面是一个用C语言写的四则运算小测试~ #include <stdio.h> #include ...
- 2018.12.15 poj3415 Common Substrings(后缀自动机)
传送门 后缀自动机基础题. 给两个字符串,让你求长度不小于kkk的公共子串的数量. 这题可以用后缀自动机解决废话 考虑对其中一个字串建出后缀自动机,然后用另一个在上面跑,注意到如果一个状态有贡献的话, ...
- jQuery动态控制下拉列表的被选项[转]
<form id="form" action="/query!query.action"> <select> <option va ...
- CLE的使用笔记
CLE官网http://www.srplab.com/cn/index.html 下载CLE for Android,解压文件,拷贝 starcore_android_rX.X.jar到工程的libs ...