DataGridViewColumn.DisplayIndex Property
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.
Gets or sets the display order of the column relative to the currently displayed columns.
public:
property int DisplayIndex { int get(); void set(int value); };
[System.ComponentModel.Browsable(false)]
public int DisplayIndex { get; set; }
[<System.ComponentModel.Browsable(false)>]
member this.DisplayIndex : int with get, set
Public Property DisplayIndex As Integer
Property Value
The zero-based position of the column as it is displayed in the associated DataGridView, or -1 if the band is not contained within a control.
- Attributes
Exceptions
DataGridView is not null
and the specified value when setting this property is less than 0 or greater than or equal to the number of columns in the control.
-or-
DataGridView is null
and the specified value when setting this property is less than -1.
-or-
The specified value when setting this property is equal to Int32.MaxValue.
Examples
The following code example uses the DisplayIndex property to swap the visual position of the first and last columns. Note that insertions occur before the DisplayIndex. This code example is part of a larger example provided for the DataGridViewColumn class.
// Swap the last column with the first.
void Button10_Click( Object^ /*sender*/, EventArgs^ /*args*/ )
{
DataGridViewColumnCollection^ columnCollection = dataGridView->Columns;
DataGridViewColumn^ firstDisplayedColumn = columnCollection->GetFirstColumn( DataGridViewElementStates::Visible );
DataGridViewColumn^ lastDisplayedColumn = columnCollection->GetLastColumn( DataGridViewElementStates::Visible, DataGridViewElementStates::None );
int firstColumn_sIndex = firstDisplayedColumn->DisplayIndex;
firstDisplayedColumn->DisplayIndex = lastDisplayedColumn->DisplayIndex;
lastDisplayedColumn->DisplayIndex = firstColumn_sIndex;
}
// Swap the last column with the first.
private void Button10_Click(object sender, EventArgs args)
{
DataGridViewColumnCollection columnCollection = dataGridView.Columns;
DataGridViewColumn firstVisibleColumn =
columnCollection.GetFirstColumn(DataGridViewElementStates.Visible);
DataGridViewColumn lastVisibleColumn =
columnCollection.GetLastColumn(
DataGridViewElementStates.Visible, DataGridViewElementStates.None);
int firstColumn_sIndex = firstVisibleColumn.DisplayIndex;
firstVisibleColumn.DisplayIndex = lastVisibleColumn.DisplayIndex;
lastVisibleColumn.DisplayIndex = firstColumn_sIndex;
}
' Swap the last column with the first.
Private Sub Button10_Click(ByVal sender As Object, _
ByVal args As EventArgs) Handles Button10.Click
Dim columnCollection As DataGridViewColumnCollection = _
dataGridView.Columns
Dim firstVisibleColumn As DataGridViewColumn = _
columnCollection.GetFirstColumn(DataGridViewElementStates.Visible)
Dim lastVisibleColumn As DataGridViewColumn = _
columnCollection.GetLastColumn(DataGridViewElementStates.Visible, _
Nothing)
Dim firstColumn_sIndex As Integer = firstVisibleColumn.DisplayIndex
firstVisibleColumn.DisplayIndex = _
lastVisibleColumn.DisplayIndex
lastVisibleColumn.DisplayIndex = firstColumn_sIndex
End Sub
Remarks
Unlike the Index property, the DisplayIndex property corresponds to the current position of the column as displayed by the user interface (UI). By default, each column's DisplayIndex is set to numbers of increasing order, which reflects the order in which they were added. The Visible property value does not affect the DisplayIndex value. To determine the display position of a column based on its visibility or other state, use the GetFirstColumn, GetLastColumn, or GetNextColumn method of the DataGridViewColumnCollection class.
Every column in the control has a unique DisplayIndex value. The values start with 0 and proceed in numerical order without skipping any values. When you change the DisplayIndex value for a column, the DisplayIndex values for other columns are changed to reflect the new order.
If the column has an associated DataGridView control, setting this property will cause the control to redraw itself.