DataGridView列的宽度自动调整,可以使用DataGridView.AutoSizeColumnsMode属性实现。

下面的代码就是列的宽度根据Header和所有单元格的内容自动调整的。

//根据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);

C# winfrom DataGridView用法的更多相关文章

  1. datagridview 用法

        标签:c# datagridview 用法 拖一个datagridview控件 初始的名字叫dataGridView1 准备工作: 点击控件右上角的三角,选择“添加列”添加表头的项 基本操作: ...

  2. winfrom dataGridView 自定义分页实现

    Winfrom 基本处于忘光的阶段.先需要做个winfrom 的软件.然后自己扩展了DataGridView带分页的控件.废话不多说 上图先   现在一步步实现其效果. 1.添加用户控件 上图即可知道 ...

  3. C#中dataGridView用法集

    SqlConnection conn = new SqlConnection('Server=(local);DataBase=test;User=sa;Pwd=sa'); SqlDataAdapte ...

  4. WinFrom - DataGridView控件右键选中记录并弹出菜单

    dataGridView右键菜单并选中该行 程序代码: private void dataGridView1_CellMouseDown(object sender, DataGridViewCell ...

  5. winfrom datagridview中DataGridViewTextBoxColumn的联动处理

    这个问题有两种方法 第一种是用DataGridview中自带的DataGridViewTextBoxColumn 控件,第二种是动态添加combobox控件 方法一: 首先 窗体上拖拽一个 DataG ...

  6. Winfrom DataGridView中使用Tooltip

    第一步:添加DataGridView.Tooltip控件,略 第二步:设置ToolTip 相关属性,略,参考下图 第三步:DataGridView 添加 CellMouseEnter.CellMous ...

  7. C# winfrom Datagridview控件下拉菜单

    拖拽一个datagridview放在界面,编辑列把下来菜单那列ColumnType设置成DataGridViewComboBoxColumn 然后在数据一栏的Items可以写下来菜单的内容也可以后台代 ...

  8. C# Winfrom DataGridView常用设置

    DataGridView常用设置 using System; using System.Collections.Generic; using System.Drawing; using System. ...

  9. 测试table数据 winfrom datagridview 点击标头数字排序的时候table 列类型要为数字类型

    public DataTable GenerateData(int NoOfRecord){DataTable tbl = new DataTable();tbl.Columns.Add(new Da ...

随机推荐

  1. ifram的使用 左边是<a>链接 右边是对应网页嵌套的显示网页链接内容 和toggle的收放用法

    1.ifram的使用 左边是<a>链接  右边是对应网页嵌套的显示网页链接内容 <div class="container"> <div class= ...

  2. Dalvik与JVM区别

    1.Dalvik出现和SDK层面采用java为开发语言的原因 1.1 避免Native作为应用代码导致的因为设备多样化导致App生态了支离破碎,是从Nokia哪里的教训. 1.2 重新实现Dalvik ...

  3. 微服务Kong(五)——添加一个用户(Consumer)

    在本节中,我们将学习如何添加一个用户(consumer)到KONG实例中.用户是与使用您的API的个人相关联,可用于跟踪,访问管理等. NOTE:本节假设您已经正确启用了密钥验证插件.如果没有,请参考 ...

  4. [中英对照]Introduction to Remote Direct Memory Access (RDMA) | RDMA概述

    前言: 什么是RDMA? 简单来说,RDMA就是指不通过操作系统(OS)内核以及TCP/IP协议栈在网络上传输数据,因此延迟(latency)非常低,CPU消耗非常少. 下面给出一篇简单介绍RDMA的 ...

  5. EF4.4增删改查实例

    第一.先创建一个名为Store数据库,将下面脚本代码执行创建表: USE [Store] GO /****** Object: Table [dbo].[Category] Script Date: ...

  6. js 页面间的通信

    看了一下公司原来的代码,原页面ajax post返回一个页面完整的HTML,然后再打开一个新页面并输出ajax返回的所有代码到新页面上,在新页面上以表单提交的形式实现重定向. 任凭我想了半天也没想出来 ...

  7. Go RabbitMQ 工作队列 (二)

    rabbitMQ工作队列 在之前内容中我们通过一个队列实现了消息的发送跟接收.接下来我们创建工作队列(Work Queue),用于在多个工作者之间分配耗时的任务 工作队列(任务队列)背后的核心主要是避 ...

  8. %notfound的理解——oracle存储过程 .

    文档中的解释:It returns TRUE if an INSERT, UPDATE, or DELETE statement affected no rows, or a SELECT INTO ...

  9. 定时IIS任务自动停止及解决办法

    ---恢复内容开始--- 操作系统:WinServer2008 R2 IIS版本:IIS7.0 目的:利用IIS挂载服务,定时或循环作业 症状:在网站的Global.asax.cs文件的Applica ...

  10. gulp教程之gulp中文API

    1.gulp.src(globs[, options]) 1.1.说明:src方法是指定需要处理的源文件的路径,gulp借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入 ...