Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports Infragistics.Win.UltraWinSchedule.CalendarCombo
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.ultraCalendarCombo1.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 comboState As CalendarComboState = mask
info += comboState.ToString() + vbCrLf
' Strip out the bit so we know when to exit this while loop
state = state And (Not mask)
End If
' 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