'Declaration Public Event BeforeColPosChanged As BeforeColPosChangedEventHandler
public event BeforeColPosChangedEventHandler BeforeColPosChanged
The event handler receives an argument of type BeforeColPosChangedEventArgs containing data related to this event. The following BeforeColPosChangedEventArgs properties provide information specific to this event.
Property | Description |
---|---|
Cancel (Inherited from System.ComponentModel.CancelEventArgs) | |
ColumnHeaders | The selected columns (read-only) |
ColumnPosChangedType | header position changed type (read-only) |
The action argument indicates which action will occur to the column or columns: moving, swapping, or sizing.
The columns argument returns a reference to a SelectedCols collection that can be used to retrieve references to the UltraGridColumn object or objects that will be moved, swapped, or sized. You can use this reference to access any of the returned collection's properties or methods, as well as the properties or methods of the objects within the collection. However, all properties of the affected columns are read-only in this event procedure.
The cancel argument enables you to programmatically prevent the column or columns from being moved, swapped, or sized. This argument can be used to prevent the user from moving, swapping, or sizing columns unless a certain condition is met. To prevent the user from attempting to move, swap, or size a column, set the AllowColMoving, AllowColSwapping, AllowColSizing properties, respectively.
This event is generated before one or more columns are moved, swapped, or sized, either programmatically, or by user interaction. Use UltraGridColumn's UltraGridColumn.Width property to resize it, ColumnHeader's ColumnHeader.SetVisiblePosition method to move it and UltraGridColumn.Swap method to swap the column. Using these properties and methods will cause this event to be raised.
The VisiblePosition property can be used to determine both the current and new positions of the column or columns that will be moved or swapped. New positions can be determined by reading the property off of the header of the column or columns in columns, while current positions can be determined by reading the property off of the header of the column or columns in the appropriate band.
The BeforeGroupPosChanged event is generated before one or more groups are moved, swapped, or sized.
The AfterColPosChanged event, which occurs after one or more columns are moved, swapped, or sized, is generated after this event, provided cancel is not set to True.
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid Imports System.Diagnostics Private Sub UltraGrid1_BeforeColPosChanged(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.BeforeColPosChangedEventArgs) Handles ultraGrid1.BeforeColPosChanged ' BeforeColPosChanged gets fired when the user moves, swaps or resizes a column ' or columns. This event gives a chance to cancel the user action. If PosChanged.Moved = e.PosChanged Then ' One or more columns are being moved Dim columnList As String = "" Dim i As Integer For i = 0 To e.ColumnHeaders.Length - 1 If i > 0 Then columnList = columnList & ", " columnList = columnList + e.ColumnHeaders(i).Column.Key Next Dim result As DialogResult = MessageBox.Show( _ "You are about to move " & columnList & " columns. Do you want to continue ?", _ "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If DialogResult.No = result Then ' Cancel the move by setting Cancel off the event args. e.Cancel = True End If ElseIf PosChanged.Swapped = e.PosChanged Then ' Two columns are being swapped. Dim result As DialogResult = MessageBox.Show( _ "You are about to swap " & e.ColumnHeaders(0).Column.Key & " with " _ + e.ColumnHeaders(1).Column.Key & " Do you want to continue ?", _ "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If DialogResult.No = result Then ' Cancel the move by setting Cancel off the event args. e.Cancel = True End If ElseIf PosChanged.Sized = e.PosChanged Then ' A column is bieng resized. ' When a column is being resized, e.ColumnHeaders contains the column header that's ' being resized. Debug.WriteLine("User is about to resize " & e.ColumnHeaders(0).Column.Key & " colun.") End If End Sub
using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System.Diagnostics; private void ultraGrid1_BeforeColPosChanged(object sender, Infragistics.Win.UltraWinGrid.BeforeColPosChangedEventArgs e) { // BeforeColPosChanged gets fired when the user moves, swaps or resizes a column // or columns. This event gives a chance to cancel the user action. if ( PosChanged.Moved == e.PosChanged ) { // One or more columns are being moved string columnList = ""; for ( int i = 0; i < e.ColumnHeaders.Length; i++ ) { if ( i > 0 ) columnList = columnList + ", "; columnList = columnList + e.ColumnHeaders[i].Column.Key; } DialogResult result = MessageBox.Show( "You are about to move " + columnList + " columns. Do you want to continue ?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question ); if ( DialogResult.No == result ) { // Cancel the move by setting Cancel off the event args. e.Cancel = true; } } else if ( PosChanged.Swapped == e.PosChanged ) { // Two columns are being swapped. DialogResult result = MessageBox.Show( "You are about to swap " + e.ColumnHeaders[0].Column.Key + " with " + e.ColumnHeaders[1].Column.Key + " Do you want to continue ?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question ); if ( DialogResult.No == result ) { // Cancel the move by setting Cancel off the event args. e.Cancel = true; } } else if ( PosChanged.Sized == e.PosChanged ) { // A column is bieng resized. // When a column is being resized, e.ColumnHeaders contains the column header that's // being resized. Debug.WriteLine( "User is about to resize " + e.ColumnHeaders[0].Column.Key + " colun." ); } }
Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2