'宣言 Public ReadOnly Property CurrentState As UltraWeekViewState
public UltraWeekViewState CurrentState {get;}
CurrentState プロパティは、KeyActionMappings テーブルだけでなく、コントロールの PerformAction(UltraWeekViewAction,Boolean,Boolean) メソッドによって使用されます。
PerformAction(UltraWeekViewAction,Boolean,Boolean) メソッドは、コントロールを使用したユーザーの操作をプログラム的にシミュレートするために役に立ちます。
ユーザーがコントロールを操作するとき、コントロールが一致した後でなければアクションを実行できないという特定の条件があります。たとえば、無効化された項目は選択できません。CurrentState プロパティは、コントロールの現在の状態で、特定のアクションを実行できるかどうかを決定するためにコントロールによって使用されるメカニズムです。
KeyActionMappings テーブルは、すべてのユーザー キーボードのインタラクティブ性を処理するためにコントロールによって使用されるメカニズムです。コントロールにとって重要なすべてのキーストロークは、KeyActionMappings テーブルに「登録」されます。この表は、コントロールによって受け取られるすべてのキーストロークを処理するために、PerformAction(UltraWeekViewAction,Boolean,Boolean) メソッドと関連して機能します。
Imports Infragistics.Win Imports Infragistics.Win.UltraWinSchedule Imports Infragistics.Win.UltraWinSchedule.WeekView Private Sub GetCurrentState() '-------------------------------------------------------------------------------- ' CurrentState ' ' この例は、メッセージ ボックスでコントロールの状態についての ' 情報を表示します '-------------------------------------------------------------------------------- Dim info As String = "The control is in the following state(s):" + vbCrLf + vbCrLf ' コントロールは 1 つ以上の状態が可能ため、 ' CurrentState プロパティはビット フラグで ' 表されます各繰り返しで相対する状態の値を保存して、 ' 設定したビットがなくなるまで設定した各ビットを削除します Dim state As Long = Me.ultraWeekView.CurrentState Dim mask As Long = 1 While (state > 0) ' マスクの現在の値に相対するビットが設定されるかどうかを確認します ' 設定されている場合、その状態の列挙体の名前を取得します If ((state And mask) <> 0) Then Dim comboState As UltraWeekViewState = mask info += comboState.ToString() + vbCrLf ' この while ループを終了する条件を保存するために、このビットを削除します state = state And (Not mask) End If ' 次の 2 のべき乗に設定するにはマスクを 2 で乗算します ' 確認するビット位置を 1 つ右へ ' 移動します mask *= 2 End While ' 状態情報をメッセージ ボックスに表示します MessageBox.Show(info, "GetCurrentState", MessageBoxButtons.OK) End Sub
using Infragistics.Win; using Infragistics.Win.UltraWinSchedule; using Infragistics.Win.UltraWinSchedule.WeekView; using System.Diagnostics; private void GetCurrentState() { //-------------------------------------------------------------------------------- // CurrentState // // この例は、メッセージ ボックスでコントロールの状態についての // 情報を表示します //-------------------------------------------------------------------------------- string info = "The control is in the following state(s):" + "\n" + "\n"; // コントロールは 1 つ以上の状態が可能ため、 // CurrentState プロパティはビット フラグで // 表されます各繰り返しで相対する状態の値を保存して、 // 設定したビットがなくなるまで設定した各ビットを削除します long state = (long)this.ultraWeekView.CurrentState; long mask = 1; while ( state > 0 ) { // マスクの現在の値に相対するビットが設定されるかどうかを確認します // 設定された場合、その状態の列挙体の名前を取得します if ( ( state & mask ) != 0 ) { UltraWeekViewState comboState = (UltraWeekViewState)( mask ); info += comboState.ToString() + "\n"; // この while ループを終了する条件を保存するために、このビットを削除します state &= ~mask; } // 次の 2 のべき乗に設定するにはマスクを 2 で乗算します // 確認するビット位置を 1 つ右へ // 移動します mask *= 2; } // 状態情報をメッセージ ボックスに表示します MessageBox.Show( info, "GetCurrentState", MessageBoxButtons.OK ); }