'宣言 Public Event BeforeGroupPosChanged As BeforeGroupPosChangedEventHandler
public event BeforeGroupPosChangedEventHandler BeforeGroupPosChanged
イベント ハンドラが、このイベントに関連するデータを含む、BeforeGroupPosChangedEventArgs 型の引数を受け取りました。次の BeforeGroupPosChangedEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 解説 |
---|---|
Cancel System.ComponentModel.CancelEventArgsから継承されます。 | |
GroupHeaders | グループ (読み取り専用) |
GroupPosChangedType | グループ位置が変更されたタイプ (読み取り専用) |
action 引数は、グループに対して実行される操作 (移動、入れ替え、サイズ変更) を示します。
groups 引数は、移動、入れ替え、またはサイズ変更される UltraGridGroup オブジェクトへの参照を取得するために使用できる Groups コレクションへの参照を返します。この参照を使用して、返されたコレクションのプロパティまたはメソッドだけでなく、コレクション内のオブジェクトのプロパティまたはメソッドにもアクセスできます。ただし、対象となるグループのプロパティはすべて、このイベント プロシージャー内では読み取り専用です。
cancel 引数を使用して、グループが移動、入れ替え、またはサイズ変更されないようにプログラミングできます。一定の条件が満たされない限り、この引数はユーザーがグループを移動、入れ替え、またはサイズ変更されないようにすることが可能です。ユーザーがグループを移動または入れ替えできないようにするには、それぞれ AllowGroupMoving または AllowGroupSwapping プロパティを設定します。
このイベントは、プログラムまたはユーザーの操作によって 1 つ以上のグループが移動、入れ替え、またはサイズ変更される前に発生します。グループをプログラムからサイズ変更するには、その Width プロパティを設定します。プログラムから移動するには、そのヘッダーの VisiblePosition プロパティを設定します。
VisiblePosition プロパティを使用して、移動または入れ替えるグループの現在の位置と新しい位置を確認できます。新しい位置は、groups 内のグループのヘッダーのプロパティから読み取ることができ、現在の位置は、適切なバンド内のグループのヘッダーのプロパティから読み取ることで判断できます。
BeforeColPosChanged イベントは、1 つ以上の列が移動、入れ替え、またはサイズ変更される前に発生します。
提供された cancel を True に設定しなければ、このイベントの後に AfterGroupPosChanged イベント(1つ以上のグループが移動、交換、またはサイズされたに発生するイベント)が発生します。
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid Private Sub UltraGrid1_BeforeGroupPosChanged(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.BeforeGroupPosChangedEventArgs) Handles ultraGrid1.BeforeGroupPosChanged ' ユーザーがグループを移動、切り替え、サイズ変更するときに BeforeGroupPosChanged を ' 発生しますこのイベントでは、ユーザー操作をキャンセルできます If PosChanged.Moved = e.PosChanged Then ' 1 つ以上のグループが移動されています Dim groupList As String = "" Dim i As Integer For i = 0 To e.GroupHeaders.Length - 1 If i > 0 Then groupList = groupList & ", " groupList = groupList + e.GroupHeaders(i).Caption Next Dim result As DialogResult = MessageBox.Show( _ "You are about to move " & groupList & " groups. Do you want to continue ?", _ "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If DialogResult.No = result Then ' 移動をキャンセルするには、イベント引数の Cancel を設定します e.Cancel = True End If ElseIf PosChanged.Swapped = e.PosChanged Then ' 2 つのグループが入れ替えられています Dim result As DialogResult = MessageBox.Show( _ "You are about to swap " & e.GroupHeaders(0).Caption & " with " _ & e.GroupHeaders(1).Caption & " Do you want to continue ?", _ "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If DialogResult.No = result Then ' 移動をキャンセルするには、イベント引数の Cancel を設定します e.Cancel = True End If ElseIf PosChanged.Sized = e.PosChanged Then ' グループのサイズが変更されています ' グループのサイズが変更されているときに、e.GroupHeaders はサイズを変更されている ' 列ヘッダーを含みます Debug.WriteLine("User is about to resize " & e.GroupHeaders(0).Caption & " group.") End If End Sub
using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System.Diagnostics; private void ultraGrid1_BeforeGroupPosChanged(object sender, Infragistics.Win.UltraWinGrid.BeforeGroupPosChangedEventArgs e) { // ユーザーがグループを移動、入れ替え、またはサイズ変更するときに BeforeGroupPosChanged を // 発生しますこのイベントでは、ユーザー操作をキャンセルできます if ( PosChanged.Moved == e.PosChanged ) { // 1 つ以上のグループが移動されています string groupList = ""; for ( int i = 0; i < e.GroupHeaders.Length; i++ ) { if ( i > 0 ) groupList = groupList + ", "; groupList = groupList + e.GroupHeaders[i].Caption; } DialogResult result = MessageBox.Show( "You are about to move " + groupList + " groups. Do you want to continue ?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question ); if ( DialogResult.No == result ) { // 移動をキャンセルするには、イベント引数の Cancel を設定します e.Cancel = true; } } else if ( PosChanged.Swapped == e.PosChanged ) { // 2 つのグループが入れ替えられています DialogResult result = MessageBox.Show( "You are about to swap " + e.GroupHeaders[0].Caption + " with " + e.GroupHeaders[1].Caption + " Do you want to continue ?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question ); if ( DialogResult.No == result ) { // 移動をキャンセルするには、イベント引数の Cancel を設定します e.Cancel = true; } } else if ( PosChanged.Sized == e.PosChanged ) { // グループのサイズが変更されています // グループのサイズが変更されているときに、e.GroupHeaders はサイズが変更されている // 列ヘッダーを含みます Debug.WriteLine( "User is about to resize " + e.GroupHeaders[0].Caption + " group." ); } }