Export (0) Print
Expand All

DataGridViewRow.GetPreferredHeight Method

Calculates the ideal height of the specified row based on the specified criteria.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public virtual int GetPreferredHeight(
	int rowIndex,
	DataGridViewAutoSizeRowMode autoSizeRowMode,
	bool fixedWidth
)

Parameters

rowIndex
Type: System.Int32

The index of the row whose preferred height is calculated.

autoSizeRowMode
Type: System.Windows.Forms.DataGridViewAutoSizeRowMode

A DataGridViewAutoSizeRowMode that specifies an automatic sizing mode.

fixedWidth
Type: System.Boolean

true to calculate the preferred height for a fixed cell width; otherwise, false.

Return Value

Type: System.Int32
The ideal height of the row, in pixels.

ExceptionCondition
InvalidEnumArgumentException

autoSizeRowMode is not a valid DataGridViewAutoSizeRowMode value.

ArgumentOutOfRangeException

The rowIndex is not in the valid range of 0 to the number of rows in the control minus 1.

This property is used by the content-based automatic sizing feature of the DataGridView control to determine the ideal height of a row. The rowIndex value lets you specify the actual row index of a shared row. (Shared rows have Index property values of -1.)

A fixedWidth parameter value of false calculates the row height based on calculated column widths that will achieve ideal cell height-to-width ratios.

For cell contents to wrap onto multiple lines, the cell style in effect for the cell must have a WrapMode property value of True.

For more information about automatic sizing, see Sizing Options in the Windows Forms DataGridView Control.

The following code example uses the GetPreferredHeight method to determine the new padding for a row that has been resized. This code example is part of a larger example provided in How to: Customize the Appearance of Rows in the Windows Forms DataGridView Control.

// Adjusts the padding when the user changes the row height so that  
// the normal cell content is fully displayed and any extra 
// height is used for the content that spans multiple columns. 
void dataGridView1_RowHeightChanged(object sender,
    DataGridViewRowEventArgs e)
{
    // Calculate the new height of the normal cell content.
    Int32 preferredNormalContentHeight =
        e.Row.GetPreferredHeight(e.Row.Index, 
        DataGridViewAutoSizeRowMode.AllCellsExceptHeader, true) -
        e.Row.DefaultCellStyle.Padding.Bottom;

    // Specify a new padding.
    Padding newPadding = e.Row.DefaultCellStyle.Padding;
    newPadding.Bottom = e.Row.Height - preferredNormalContentHeight;
    e.Row.DefaultCellStyle.Padding = newPadding;
}

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft