转:DataGridView列的宽度、行的高度自动调整
注意:DataGridView控件是从.NET Framework 2.0版本开始追加的。
介绍一下DataGridView列的宽度和行的高度,根据单元格或Header的内容(一般是内容全部被表示)自动调整的方法。
内容变更时自动调整
列的宽度自动调整
DataGridView列的宽度自动调整,可以使用DataGridView.AutoSizeColumnsMode属性实现。
下面的代码就是列的宽度根据Header和所有单元格的内容自动调整的。
[C#]
//根据Header和所有单元格的内容自动调整列的宽度 DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
DataGridViewAutoSizeColumnsMode枚举的成员如下所示(是从MSDN「DataGridViewAutoSizeColumnsMode 枚举」引用的)。
DataGridViewAutoSizeColumnsMode成员名称
|
说明
|
AllCells | 列宽调整到适合列中所有单元格(包括标头单元格)的内容。 |
AllCellsExceptHeader | 列宽调整到适合列中除标头单元格以外所有单元格内容。 |
ColumnHeader | 列宽调整到适合列标头单元格的内容。 |
DisplayedCells | 列宽调整到适合位于屏幕上当前显示的行中的列的所有单元格(包括标头单元格)的内容。 |
DisplayedCellsExceptHeader | 列宽调整到适合位于屏幕上当前显示的列中的列的所有单元格(不包括标头单元格)的内容。 |
Fill | 列宽调整到使所有列宽精确填充控件的显示区域,要求使用水平滚动的目的只是保持列宽大于DataGridViewColumn.MinimumWidth属性的值。相对列宽由相对 DataGridViewColumn.FillWeight属性值决定。 |
None | 列宽不会自动调整。 |
行高的自动调整
DataGridView行的高度自动调整,可以使用DataGridView1.AutoSizeRowsMode属性实现。
[C#]
//根据Header和所有单元格的内容自动调整行的高度 DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
DataGridViewAutoSizeRowsMode枚举的成员如下所示(是从MSDN「DataGridViewAutoSizeRowsMode 枚举」引用的)。
DataGridViewAutoSizeRowsMode成员名称
|
说明
|
AllCells | 将行高调整到适合行中所有单元格(包括标头单元格)的内容。 |
AllCellsExceptHeaders | 将行高调整到适合行中所有单元格(不包括标头单元格)的内容。 |
AllHeaders | 将行高调整到适合行标头的内容。 |
DisplayedCells | 将行高调整到适合屏幕上当前显示的行中所有单元格(包括标头单元格)的内容。 |
DisplayedCellsExceptHeaders | 将行高调整到适合屏幕上当前显示的行中所有单元格(不包括标头单元格)的内容。 |
DisplayedHeaders | 将行高调整到适合屏幕上当前显示的行标头的内容。 |
None | 行高不自动调整。 |
列Header的高度、行Header的宽度自动调整
列Header的高度自动调整,可以通过设定DataGridView对象ColumnHeadersHeightSizeMode属性为DataGridViewColumnHeadersHeightSizeMode.AutoSize实现。
行Header的宽度行自动调整,可以通过设定DataGridView对象RowHeadersWidthSizeMode属性为 DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders(根据所有行Header的内容自 动调整)或AutoSizeToDisplayedHeaders(根据当前显示的行Header内容自动调整)或 AutoSizeToFirstHeader(根据第一行Header的内容自动调整)来实现。
[C#]
//列Header的高度自动调整 DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; //行Header的宽度自动调整 DataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
关于优化
通过设定AutoSizeColumnsMode或AutoSizeRowsMode属性,列或行可以根据单元格的内容变更,自动调整,但是经常使用这种方法,运行速度就会低下。尤其当行或列数量比较多时,更为明显。
这时,可以替换AllCells而设定DisplayedCells,只对当前显示单元格的内容自动调整,这样就可以提高执行速度。
只有被指定的列自动调整
只有被指定列自动调整,可以使用指定列(DataGridViewColumn对象)的AutoSizeMode属性实现。使用方法和AutoSizeColumnsMode属性基本一样。
下面是对第一列的宽度自动调整的代码。
[C#]
//第一列的宽度自动调整 DataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
和AutoSizeColumnsMode属性不同,AutoSizeMode属性可以设定为NotSet。当设定为NotSet时,列的自动调整 的设定会继承DataGridView.AutoSizeColumnsMode属性的设定。AutoSizeMode属性设定为NotSet继承 AutoSizeColumnsMode属性时,所继承的设定可以使用 DataGridViewColumn.InheritedAutoSizeMode属性取得。
任意自动调整
列的宽度自动调整
对DataGridView内所有列只进行一次自动调整,可以使用DataGridView对象的AutoResizeColumns方法实现。 AutoResizeColumns方法和AutoSizeColumnsMode属性一样,根据 DataGridViewAutoSizeColumnsMode枚举值指定自动调整的方法。如果只对指定列自动调整时,可以使用 DataGridView对象的AutoResizeColumn方法。
[C#]
//DataGridView1所有列的宽度自动调整 DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells); //DataGridView1第一列的宽度自动调整 DataGridView1.AutoResizeColumn(0, DataGridViewAutoSizeColumnMode.AllCells);
补充:上面的例子中使用AutoResizeColumns或AutoResizeColumn指定DataGridViewAutoSizeColumnMode.AllCells时,可以省去参数。
行的高度自动调整
和列的设定一样,使用AutoResizeRows方法只对指定行的高度进行自动调整。
[C#]
//DataGridView1所有行的高度自动调整 DataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells); //DataGridView1第一行的高度自动调整 DataGridView1.AutoResizeRow(0, DataGridViewAutoSizeRowMode.AllCells);
补充:上面的例子中使用AutoResizeRows或AutoResizeRow指定DataGridViewAutoSizeRowMode.AllCells 时,可以省去参数。
列Header的高度或行Header和宽度自动调整
列Header的高度和行Header的宽度的自动调整,可以使用DataGridView.AutoResizeColumnHeadersHeight方法和AutoResizeRowHeadersWidth方法实现。
[C#]
//所有列Header的高度自动调整 DataGridView1.AutoResizeColumnHeadersHeight(); //行Header的宽度自动调整 DataGridView1.AutoResizeRowHeadersWidth( DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
转:DataGridView列的宽度、行的高度自动调整的更多相关文章
- DataGridView列的宽度、行的高度自动调整
注意:DataGridView控件是从.NET Framework 2.0版本开始追加的. 介绍一下DataGridView列的宽度和行的高度,根据单元格或Header的内容(一般是内容全部被表示)自 ...
- [Winform]DataGridView列自适应宽度
引言 在做winform项目中,数据控件DataGridView的使用多多少少是会用到的,如果不设置它的属性,默认情况下是不会自适应宽度的,你想查看某项的数据,就不得不将标题栏拖来拖去,挺烦的. 方法 ...
- DataGridView列自适应宽度
来源:http://www.cnblogs.com/wolf-sun/p/3480104.html 在做winform项目中,数据控件DataGridView的使用多多少少是会用到的,如果不设置它的属 ...
- DataGridView 列自适应宽度 设置
代码: Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; 或者设置DataGridView的AutoSizeColu ...
- AdvStringGrid 列宽度、列移动、行高度、自动调节
那么有没有办法,让客户自己去调整列的宽度呢? 那么有没有办法 让列宽度.行高度 随着内容而自动变换呢: unit Unit5; interface uses Winapi.Windows, Winap ...
- DataGridView使用技巧(七、设定列宽和行高自动调整)----.NET
DataGridView使用技巧(七.设定列宽和行高自动调整)----.NET 1) 设定行高和列宽自动调整 [VB.NET]' 设定包括Header和所有单元格的列宽自动调整DataGridView ...
- DataGridView中添加CheckBox列用于选择行
DataGridView中添加CheckBox列用于选择行 1,编辑DataGridView,添加一列 CheckBox ,Name 赋值为 "select",如下图: 2,取消 ...
- GridView 显示行号 设置行号列的宽度
/// <summary> /// GridView 显示行号 设置行号列的宽度 /// </summary> /// <param name="gv" ...
- DataGridView自动保存列的宽度和位置
WinForm程序中表单的自动保存列的宽度和位置,是一种常见的功能,对于用户体验来说是非常好的.现记录一下实现过程: 1.新建一个类,命为为:DataGridViewColumnStyle. 这个类实 ...
随机推荐
- UDP穿透NAT原理解析
转自:http://www.2cto.com/net/201201/116793.html NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益 ...
- 第二十一篇:SOUI中的控件注册机制
Win32编程中,用户需要一个新控件时,需要向系统注册一个新的控件类型.注册以后,调用::CreateWindow时才能根据标识控件类型的字符串创建出一个新的控件窗口对象. 为了能够从XML描述的字符 ...
- WIN7系统下U盘安装Ubuntu双系统
1. 准备工作 1. 官网下载Ubantu镜像,我下载的是Ubantu14.04.3 LTS版本: 2. 下载 Universal USB Installer (UUI)用于制作U盘启动盘: 3. 下 ...
- maven web启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener
问题描述 SEVERE: Error configuring application listener of class org.springframework.web.util.Log4jConfi ...
- HDU 3911 Black And White(线段树区间合并+lazy操作)
开始以为是水题,结果...... 给你一些只有两种颜色的石头,0为白色,1为黑色. 然后两个操作: 1 l r 将[ l , r ]内的颜色取反 0 l r 计算[ l , r ]内最长连续黑色石头的 ...
- loadrunner处理HTTP重定向请求
//place this in global.h int HttpRetCode; int i=0; char depthVal[10]; char cTransactName[2000 ...
- C#经典机试题(猫叫)
猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒.(C#语言) 1.要有联动性,老鼠和主人的行为是被动的. 2.考虑可扩展性,猫的叫声可能引起其他联动效应. public interface Observ ...
- JavaScript设计模式——工厂模式
工厂模式:是一种实现“工厂”概念的面上对象设计模式.实质是定义一个创建对象的接口,但是让实现这个接口的类来决定实例化哪个类.工厂方法让类的实例化推迟到子类中进行.创建一个对象常常需要复杂的过程,所以不 ...
- hashlib加密操作模块
import hashlib#加密操作obj=hashlib.md5(bytes("hasdfghjklcxz",encoding="utf-8"))#加密操作 ...
- css用clearfix清除浮动
本文从http://www.studyofnet.com/news/196.html复制. 本文导读:写css 时总为浮动而烦恼,如果用了浮动,浮动的父层不会跟着浮动框的高度增加而增加,在Fire ...