zoukankan      html  css  js  c++  java
  • DataGridView列的宽度、行的高度自动调整

    内容变更时自动调整

    列的宽度自动调整

    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);
  • 相关阅读:
    204. Count Primes (Integer)
    203. Remove Linked List Elements (List)
    202. Happy Number (INT)
    201. Bitwise AND of Numbers Range (Bit)
    200. Number of Islands (Graph)
    199. Binary Tree Right Side View (Tree, Stack)
    198. House Robber(Array; DP)
    191. Number of 1 Bits (Int; Bit)
    190. Reverse Bits (Int; Bit)
    189. Rotate Array(Array)
  • 原文地址:https://www.cnblogs.com/cnote/p/9056670.html
Copyright © 2011-2022 走看看