'宣言 Public ReadOnly Property CurrentState As MonthViewMultiState
public MonthViewMultiState CurrentState {get;}
Keypress への応答を処理するとき (KeyActionMappings) ならびに PerformAction(MonthViewMultiAction) を使用するときに CurrentState を使用します。
Private Sub GetCurrentState() Dim info As String = "The control is in the following state(s):" + vbcrlf + vbcrlf ' The CurrentState property is expressed in terms of bit flags, ' since the control can be in more than one distinct state at any ' given time. We will strip each bit that is set until we are left with ' no set bits, recording the corresponding state value with each iteration. Dim state As Long = Me.ultraMonthViewMulti1.CurrentState Dim mask As Long = 1 While (state > 0) ' See if the bit that corresponds to the current value of the mask ' is set if it is, get the name of the enumeration for that state If ((state And mask) <> 0) Then Dim controlState As MonthViewMultiState = mask info += controlState.ToString() + vbcrlf End If ' Strip out the bit so we know when to exit this while loop state = state And (Not mask) ' Multiply the mask by 2 to set it to the next power of 2, ' effectively shifting the bit position we are checking one ' place to the right mask *= 2 End While ' Display the state information in a message box MessageBox.Show(info, "GetCurrentState", MessageBoxButtons.OK) End Sub
private void GetCurrentState() { string info = "The control is in the following state(s):" + "\n" + "\n"; // The CurrentState property is expressed in terms of bit flags, // since the control can be in more than one distinct state at any // given time. We will strip each bit that is set until we are left with // no set bits, recording the corresponding state value with each iteration. long state = (long)this.ultraMonthViewMulti1.CurrentState; long mask = 1; while ( state > 0 ) { // See if the bit that corresponds to the current value of the mask // is set; if it is, get the name of the enumeration for that state if ( ( state & mask ) != 0 ) { MonthViewMultiState controlState = (MonthViewMultiState)( mask ); info += controlState.ToString() + "\n"; // Strip out the bit so we know when to exit this while loop state &= ~mask; } // Multiply the mask by 2 to set it to the next power of 2, // effectively shifting the bit position we are checking one // place to the right mask *= 2; } // Display the state information in a message box MessageBox.Show( info, "GetCurrentState", MessageBoxButtons.OK ); }