DataGridView.AutoResizeColumn 方法

定义

调整指定列的宽度以适应其单元格的内容。Adjusts the width of the specified column to fit the contents of its cells.

重载

AutoResizeColumn(Int32)

调整指定列的宽度以适应其所有单元格(包括标题单元格)的内容。Adjusts the width of the specified column to fit the contents of all its cells, including the header cell.

AutoResizeColumn(Int32, DataGridViewAutoSizeColumnMode)

使用指定的大小调整模式调整指定列的宽度。Adjusts the width of the specified column using the specified size mode.

AutoResizeColumn(Int32, DataGridViewAutoSizeColumnMode, Boolean)

使用指定的大小调整模式调整指定列的宽度,还可以选择在行高随后进行调整的假定条件下计算宽度。Adjusts the width of the specified column using the specified size mode, optionally calculating the width with the expectation that row heights will subsequently be adjusted.

AutoResizeColumn(Int32)

调整指定列的宽度以适应其所有单元格(包括标题单元格)的内容。Adjusts the width of the specified column to fit the contents of all its cells, including the header cell.

public:
 void AutoResizeColumn(int columnIndex);
public void AutoResizeColumn (int columnIndex);
member this.AutoResizeColumn : int -> unit
Public Sub AutoResizeColumn (columnIndex As Integer)

参数

columnIndex
Int32

要调整大小的列的索引。The index of the column to resize.

异常

columnIndex 不在 0 到列数减 1 的有效范围内。columnIndex is not in the valid range of 0 to the number of columns minus 1.

示例

下面的代码示例使用此方法来使列宽足够大以容纳新的单元值。The following code example uses this method to make the column width large enough to accommodate a new cell value. 此示例摘自 [How 中提供的更大示例的一部分:操作 Windows 窗体 DataGridView 控件 @ no__t 中的行。This example is part of a larger example available in How to: Manipulate Rows in the Windows Forms DataGridView Control.

// Give cheescake excellent rating.
void Button8_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
   UpdateStars( dataGridView->Rows[ 4 ], L"******************" );
}

int ratingColumn;
void UpdateStars( DataGridViewRow^ row, String^ stars )
{
   row->Cells[ ratingColumn ]->Value = stars;
   
   // Resize the column width to account for the new value.
   row->DataGridView->AutoResizeColumn( ratingColumn, DataGridViewAutoSizeColumnMode::DisplayedCells );
}


// Give cheescake excellent rating.
private void Button8_Click(object sender,
    System.EventArgs e)
{
    UpdateStars(dataGridView.Rows[4], "******************");
}

int ratingColumn = 3;

private void UpdateStars(DataGridViewRow row, string stars)
{

    row.Cells[ratingColumn].Value = stars;

    // Resize the column width to account for the new value.
    row.DataGridView.AutoResizeColumn(ratingColumn, 
        DataGridViewAutoSizeColumnMode.DisplayedCells);
}
' Give cheescake excellent rating.
Private Sub Button8_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles Button8.Click

    UpdateStars(dataGridView.Rows(4), "******************")
End Sub

Private ratingColumn As Integer = 3

Private Sub UpdateStars(ByVal row As DataGridViewRow, _
    ByVal stars As String)

    row.Cells(ratingColumn).Value = stars

    ' Resize the column width to account for the new value.
    row.DataGridView.AutoResizeColumn(ratingColumn, _
        DataGridViewAutoSizeColumnMode.DisplayedCells)

End Sub

注解

如果要控制列的大小调整,此方法非常有用。This method is useful if you want to control when a column resizes. 列宽仅针对每个方法调用进行一次调整;如果以后列中的内容发生更改,列将不会自动调整。The column width is adjusted only once per method call; if the contents of the column later change, the column will not automatically adjust. 若要调整所有列的大小,请使用 AutoResizeColumns 方法。To resize all columns, use the AutoResizeColumns method. 若要将列设置为在其内容更改时自动调整大小,请使用 @no__t 或 @no__t 属性的列。To set the column to automatically resize whenever its contents change, use the AutoSizeColumnsMode property or the column AutoSizeMode property.

有关以编程方式调整大小的详细信息,请参阅Windows 窗体 DataGridView 控件中的调整大小选项For more information about programmatic resizing, see Sizing Options in the Windows Forms DataGridView Control.

另请参阅

AutoResizeColumn(Int32, DataGridViewAutoSizeColumnMode)

使用指定的大小调整模式调整指定列的宽度。Adjusts the width of the specified column using the specified size mode.

public:
 void AutoResizeColumn(int columnIndex, System::Windows::Forms::DataGridViewAutoSizeColumnMode autoSizeColumnMode);
public void AutoResizeColumn (int columnIndex, System.Windows.Forms.DataGridViewAutoSizeColumnMode autoSizeColumnMode);
member this.AutoResizeColumn : int * System.Windows.Forms.DataGridViewAutoSizeColumnMode -> unit
Public Sub AutoResizeColumn (columnIndex As Integer, autoSizeColumnMode As DataGridViewAutoSizeColumnMode)

参数

columnIndex
Int32

要调整大小的列的索引。The index of the column to resize.

异常

autoSizeColumnMode 具有值 ColumnHeader,且 ColumnHeadersVisiblefalseautoSizeColumnMode has the value ColumnHeader and ColumnHeadersVisible is false.

autoSizeColumnMode 具有值 NotSetNoneFillautoSizeColumnMode has the value NotSet, None, or Fill.

columnIndex 不在 0 到列数减 1 的有效范围内。columnIndex is not in the valid range of 0 to the number of columns minus 1.

autoSizeColumnMode 不是有效的 DataGridViewAutoSizeColumnMode 值。autoSizeColumnMode is not a valid DataGridViewAutoSizeColumnMode value.

示例

下面的代码示例使用此方法来使列宽足够大以容纳新的单元值。The following code example uses this method to make the column width large enough to accommodate a new cell value. 此示例摘自 [How 中提供的更大示例的一部分:操作 Windows 窗体 DataGridView 控件 @ no__t 中的行。This example is part of a larger example available in How to: Manipulate Rows in the Windows Forms DataGridView Control.

// Give cheescake excellent rating.
void Button8_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
   UpdateStars( dataGridView->Rows[ 4 ], L"******************" );
}

int ratingColumn;
void UpdateStars( DataGridViewRow^ row, String^ stars )
{
   row->Cells[ ratingColumn ]->Value = stars;
   
   // Resize the column width to account for the new value.
   row->DataGridView->AutoResizeColumn( ratingColumn, DataGridViewAutoSizeColumnMode::DisplayedCells );
}


// Give cheescake excellent rating.
private void Button8_Click(object sender,
    System.EventArgs e)
{
    UpdateStars(dataGridView.Rows[4], "******************");
}

int ratingColumn = 3;

private void UpdateStars(DataGridViewRow row, string stars)
{

    row.Cells[ratingColumn].Value = stars;

    // Resize the column width to account for the new value.
    row.DataGridView.AutoResizeColumn(ratingColumn, 
        DataGridViewAutoSizeColumnMode.DisplayedCells);
}
' Give cheescake excellent rating.
Private Sub Button8_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles Button8.Click

    UpdateStars(dataGridView.Rows(4), "******************")
End Sub

Private ratingColumn As Integer = 3

Private Sub UpdateStars(ByVal row As DataGridViewRow, _
    ByVal stars As String)

    row.Cells(ratingColumn).Value = stars

    ' Resize the column width to account for the new value.
    row.DataGridView.AutoResizeColumn(ratingColumn, _
        DataGridViewAutoSizeColumnMode.DisplayedCells)

End Sub

注解

如果要控制列的大小调整,此方法非常有用。This method is useful if you want to control when a column resizes. 列宽仅针对每个方法调用进行一次调整;如果以后列中的内容发生更改,列将不会自动调整。The column width is adjusted only once per method call; if the contents of the column later change, the column will not automatically adjust. 若要调整所有列的大小,请使用 AutoResizeColumns 方法。To resize all columns, use the AutoResizeColumns method. 若要将列设置为在其内容更改时自动调整大小,请使用 @no__t 或 @no__t 属性的列。To set the column to automatically resize whenever its contents change, use the AutoSizeColumnsMode property or the column AutoSizeMode property.

此重载允许您指定调整大小模式,该模式基于有限单元格集中的值(例如,仅显示的行中的值)计算新的宽度。This overload lets you specify a sizing mode that calculates the new width based on values in a limited set of cells, such as those in displayed rows only. 这会提高控件包含大量行时的性能。This improves performance when the control contains a large number of rows.

有关以编程方式调整大小的详细信息,请参阅Windows 窗体 DataGridView 控件中的调整大小选项For more information about programmatic resizing, see Sizing Options in the Windows Forms DataGridView Control.

另请参阅

AutoResizeColumn(Int32, DataGridViewAutoSizeColumnMode, Boolean)

使用指定的大小调整模式调整指定列的宽度,还可以选择在行高随后进行调整的假定条件下计算宽度。Adjusts the width of the specified column using the specified size mode, optionally calculating the width with the expectation that row heights will subsequently be adjusted.

protected:
 void AutoResizeColumn(int columnIndex, System::Windows::Forms::DataGridViewAutoSizeColumnMode autoSizeColumnMode, bool fixedHeight);
protected void AutoResizeColumn (int columnIndex, System.Windows.Forms.DataGridViewAutoSizeColumnMode autoSizeColumnMode, bool fixedHeight);
member this.AutoResizeColumn : int * System.Windows.Forms.DataGridViewAutoSizeColumnMode * bool -> unit
Protected Sub AutoResizeColumn (columnIndex As Integer, autoSizeColumnMode As DataGridViewAutoSizeColumnMode, fixedHeight As Boolean)

参数

columnIndex
Int32

要调整大小的列的索引。The index of the column to resize.

fixedHeight
Boolean

如果要基于当前的行高计算新宽度,则为 true;如果要在行高也进行调整的假定条件下计算宽度,则为 falsetrue to calculate the new width based on the current row heights; false to calculate the width with the expectation that the row heights will also be adjusted.

异常

autoSizeColumnMode 具有值 ColumnHeader,且 ColumnHeadersVisiblefalseautoSizeColumnMode has the value ColumnHeader and ColumnHeadersVisible is false.

autoSizeColumnMode 具有值 NotSetNoneFillautoSizeColumnMode has the value NotSet, None, or Fill.

columnIndex 不在 0 到列数减 1 的有效范围内。columnIndex is not in the valid range of 0 to the number of columns minus 1.

autoSizeColumnMode 不是有效的 DataGridViewAutoSizeColumnMode 值。autoSizeColumnMode is not a valid DataGridViewAutoSizeColumnMode value.

注解

如果要控制列的大小调整,此方法非常有用。This method is useful if you want to control when a column resizes. 列宽仅针对每个方法调用进行一次调整;如果以后列中的内容发生更改,列将不会自动调整。The column width is adjusted only once per method call; if the contents of the column later change, the column will not automatically adjust. 若要调整所有列的大小,请使用 AutoResizeColumns 方法。To resize all columns, use the AutoResizeColumns method. 若要将列设置为在其内容更改时自动调整大小,请使用 @no__t 或 @no__t 属性的列。To set the column to automatically resize whenever its contents change, use the AutoSizeColumnsMode property or the column AutoSizeMode property.

此重载允许您指定调整大小模式,该模式基于有限单元格集中的值(例如,仅显示的行中的值)计算新的宽度。This overload lets you specify a sizing mode that calculates the new width based on values in a limited set of cells, such as those in displayed rows only. 这会提高控件包含大量行时的性能。This improves performance when the control contains a large number of rows.

此重载受到保护,旨在使你能够在派生 @no__t 0 类中实现理想的单元格高度与宽度的比率。This overload is protected and is designed to enable you to achieve ideal cell height-to-width ratios in a derived DataGridView class. 如果 fixedHeight @no__t 为-1,则将根据你将调用第二 @no__t 或 @no__t 方法的预期来计算列宽。If fixedHeight is false, the column width will be calculated with the expectation that you will call the AutoResizeRow or AutoResizeRows method next.

有关以编程方式调整大小的详细信息,请参阅Windows 窗体 DataGridView 控件中的调整大小选项For more information about programmatic resizing, see Sizing Options in the Windows Forms DataGridView Control.

另请参阅

适用于