DataGridViewRow.GetPreferredHeight Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Calculates the ideal height of the specified row based on the specified criteria.
public:
virtual int GetPreferredHeight(int rowIndex, System::Windows::Forms::DataGridViewAutoSizeRowMode autoSizeRowMode, bool fixedWidth);
public virtual int GetPreferredHeight (int rowIndex, System.Windows.Forms.DataGridViewAutoSizeRowMode autoSizeRowMode, bool fixedWidth);
abstract member GetPreferredHeight : int * System.Windows.Forms.DataGridViewAutoSizeRowMode * bool -> int
override this.GetPreferredHeight : int * System.Windows.Forms.DataGridViewAutoSizeRowMode * bool -> int
Public Overridable Function GetPreferredHeight (rowIndex As Integer, autoSizeRowMode As DataGridViewAutoSizeRowMode, fixedWidth As Boolean) As Integer
Parameters
- rowIndex
- Int32
The index of the row whose preferred height is calculated.
- autoSizeRowMode
- DataGridViewAutoSizeRowMode
A DataGridViewAutoSizeRowMode that specifies an automatic sizing mode.
- fixedWidth
- Boolean
true
to calculate the preferred height for a fixed cell width; otherwise, false
.
Returns
The ideal height of the row, in pixels.
Exceptions
autoSizeRowMode
is not a valid DataGridViewAutoSizeRowMode value.
The rowIndex
is not in the valid range of 0 to the number of rows in the control minus 1.
Examples
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;
}
' 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.
Sub dataGridView1_RowHeightChanged(ByVal sender As Object, _
ByVal e As DataGridViewRowEventArgs) _
Handles dataGridView1.RowHeightChanged
' Calculate the new height of the normal cell content.
Dim preferredNormalContentHeight As Int32 = _
e.Row.GetPreferredHeight(e.Row.Index, _
DataGridViewAutoSizeRowMode.AllCellsExceptHeader, True) - _
e.Row.DefaultCellStyle.Padding.Bottom()
' Specify a new padding.
Dim newPadding As Padding = e.Row.DefaultCellStyle.Padding
newPadding.Bottom = e.Row.Height - preferredNormalContentHeight
e.Row.DefaultCellStyle.Padding = newPadding
End Sub
Remarks
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.
Applies to
See also
- DataGridView
- DataGridViewAutoSizeRowMode
- WrapMode
- GetPreferredWidth(DataGridViewAutoSizeColumnMode, Boolean)
- How to: Customize the Appearance of Rows in the Windows Forms DataGridView Control
- Sizing Options in the Windows Forms DataGridView Control
- Best Practices for Scaling the Windows Forms DataGridView Control