Bit flags that describe the state of the control.
This example displays information about the control's current state in a message box.
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
'Declaration
Public Enum MonthViewMultiState
Inherits System.Enum
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 );
}
'Declaration
Public Enum MonthViewMultiState
Inherits System.Enum
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