'宣言 Public Enum UltraMonthViewSingleState Inherits System.Enum
public enum UltraMonthViewSingleState : System.Enum
UltraMonthViewSingleState 列挙体の値はビットフラグです。コントロールの Infragistics.Win.UltraWinSchedule.UltraMonthViewSingle.CurrentState プロパティの値は、これらのビットフラグのゼロまたはそれ以上の組み合わせと等しい値を返します。
Imports Infragistics.Win Imports Infragistics.Win.UltraWinSchedule Imports Infragistics.Win.UltraWinSchedule.MonthViewSingle Private Sub GetCurrentState() Dim info As String = "The control is in the following state(s):" + vbCrLf + vbCrLf ' コントロールは 1 つ以上の状態が可能ため、 ' CurrentState プロパティはビット フラグで ' 表されます各繰り返しで相対する状態の値を保存して、 ' 設定したビットがなくなるまで設定した各ビットを削除します Dim state As Long = Me.ultraMonthViewSingle1.CurrentState Dim mask As Long = 1 While (state > 0) ' マスクの現在の値に相対するビットが設定されるかどうかを確認します ' 設定されている場合、その状態の列挙体の名前を取得します If ((state And mask) <> 0) Then Dim comboState As UltraMonthViewSingleState = 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.MonthViewSingle; using System.Diagnostics; private void GetCurrentState() { string info = "The control is in the following state(s):" + "\n" + "\n"; // コントロールは 1 つ以上の状態が可能ため、 // CurrentState プロパティはビット フラグで // 表されます各繰り返しで相対する状態の値を保存して、 // 設定したビットがないまでに各の設定したビットを削除します long state = (long)this.ultraMonthViewSingle1.CurrentState; long mask = 1; while ( state > 0 ) { // マスクの現在の値に相対するビットが設定されるかどうかを確認します // 設定された場合、その状態の列挙体の名前を取得します if ( ( state & mask ) != 0 ) { UltraMonthViewSingleState comboState = (UltraMonthViewSingleState)( mask ); info += comboState.ToString() + "\n"; // この while ループを終了する条件を保存するために、このビットを削除します state &= ~mask; } // 次の 2 のべき乗に設定するにはマスクを 2 で乗算します // 確認するビット位置を 1 つ右へ // 移動します mask *= 2; } // 状態情報をメッセージ ボックスに表示します MessageBox.Show( info, "GetCurrentState", MessageBoxButtons.OK ); }