Imports Infragistics.Shared
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports System.Diagnostics
Private Sub ultraCalendarInfo1_BeforeSelectedHolidaysChange(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinSchedule.BeforeSelectedHolidaysEventArgs) Handles ultraCalendarInfo1.BeforeSelectedHolidaysChange
'----------------------------------------------------------------------------------------------------
' 説明
' BeforeSelectedHolidaysChange
'
' 1 つ以上の Holiday が選択または選択解除された後に発生します
'
'----------------------------------------------------------------------------------------------------
' NewSelectedHolidays コレクションのカウントは既存の
' SelectedHolidays コレクションのカウントより大きいの場合、
' 新しい休日が選択されました
Dim info As String = String.Empty
If (e.NewSelectedHolidays.Count > Me.ultraCalendarInfo1.SelectedHolidays.Count) Then
info += "The following Holidays have been added to the selection:" + vbCrLf + vbCrLf
If (Me.ultraCalendarInfo1.SelectedHolidays.Count > 0) Then
' NewSelectedHolidays コレクションを繰り返し、
' 各の新しい選択についての情報を取得します
Dim newHoliday As Holiday
For Each newHoliday In e.NewSelectedHolidays
' 既存の選択された休日を繰り返し、コレクションに追加した新しい休日を
' 決定します
Dim oldHoliday As Holiday
For Each oldHoliday In Me.ultraCalendarInfo1.SelectedHolidays
If (newHoliday Is oldHoliday) Then
Exit For
Else
' 既存の休日が SelectedHolidays コレクションに存在する場合、
' ユーザーの新しい休日として表示されません
info += newHoliday.Name + " ("
info += newHoliday.StartDate.ToLongDateString() + ")" + vbCrLf
End If
Next
Next
Else
' SelectedHolidays コレクションのカウントが 0 の場合、
' 存在するかどうかを確認する必要がないため、すべてを表示します
Dim newHoliday As Holiday
For Each newHoliday In e.NewSelectedHolidays
' 既存の休日が SelectedHolidays コレクションに存在し、
' NewSelectedHolidays コレクションには存在しない場合、選択は解除されます
info += newHoliday.Name + " ("
info += newHoliday.StartDate.ToLongDateString() + ")" + vbCrLf
Next
End If
ElseIf (e.NewSelectedHolidays.Count > 0) Then
' そうでない場合、既存の休日の選択が解除されます
info += "The following Holidays have been removed from the selection:" + vbCrLf + vbCrLf
' 既存の SelectedHolidays コレクションを繰り返し、
' 各解除されている選択についての情報を取得します
Dim oldHoliday As Holiday
For Each oldHoliday In Me.ultraCalendarInfo1.SelectedHolidays
' 既存の選択された休日を繰り返し、コレクションに追加した新しい休日を
' 決定します
Dim newHoliday As Holiday
For Each newHoliday In e.NewSelectedHolidays
If (newHoliday Is oldHoliday) Then
Exit For
Else
' 既存の休日が SelectedHolidays コレクションに存在する場合、
' NewSelectedHolidays コレクションにない場合、選択は解除されます
info += oldHoliday.Name + " ("
info += oldHoliday.StartDate.ToLongDateString() + ")" + vbCrLf
End If
Next
Next
Else
' 選択がクリアされました
info += "The SelectedHolidays collection is about to be cleared." + vbCrLf
info += vbCrLf + vbCrLf + "Continue?"
' エンド ユーザーに MessageBox を表示し、続行するかどうかを確認します
Dim result As DialogResult = MessageBox.Show(info, "BeforeSelectedHolidaysChange", MessageBoxButtons.YesNo)
' 続行しない場合、イベントをキャンセルします
If (result = DialogResult.No) Then e.Cancel = True
End If
End Sub