'宣言 Protected Overridable Sub OnBeforeActiveDayChanged( _ ByVal e As BeforeActiveDayChangedEventArgs _ )
protected virtual void OnBeforeActiveDayChanged( BeforeActiveDayChangedEventArgs e )
イベントが発生すると、デリゲートを通じてイベント ハンドラーが呼び出されます。
OnBeforeActiveDayChanged メソッドを使用すれば、デリゲートを関連付けなくても、派生クラスでイベントを処理できます。これは、派生クラスでイベントを処理する際によく用いられる手法です。
継承時の注意: 派生クラスで OnBeforeActiveDayChanged をオーバーライドする場合は、登録されたデリゲートがイベントを受信できるようにするため、必ず基本クラスの OnBeforeActiveDayChanged メソッドを呼び出してください。
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinSchedule Imports System.Diagnostics Private Sub ultraCalendarInfo1_BeforeActiveDayChanged(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinSchedule.BeforeActiveDayChangedEventArgs) Handles ultraCalendarInfo1.BeforeActiveDayChanged '---------------------------------------------------------------------------------------------------- ' 説明 ' BeforeActiveDayChanged ' ' ActiveDay が変更される前に発生しますキャンセルされた場合、ActiveDay を変更しなくて、 ' AfterActiveDayChanged イベントを発生しません ' '---------------------------------------------------------------------------------------------------- ' 新しい ActiveDay になる日の曜日を取得します Dim DayOfWeek As System.DayOfWeek = e.Day.Date.DayOfWeek ' 新しい ActiveDay は土曜日または日曜日であるかどうかを確認します If (DayOfWeek = System.DayOfWeek.Saturday Or DayOfWeek = System.DayOfWeek.Sunday) Then ' 週末日のアクティブ化を回避するには、Cancel プロパティを ' True に設定します e.Cancel = True ' ユーザーに状態を出力します Dim info As String = String.Empty info += "You cannot activate " + e.Day.Date.ToLongDateString() + " because it falls on a " info += DayOfWeek.ToString() MessageBox.Show(info, "BeforeActiveDayChanged", MessageBoxButtons.OK) End If End Sub
using System.Diagnostics; using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinSchedule; private void ultraCalendarInfo1_BeforeActiveDayChanged(object sender, Infragistics.Win.UltraWinSchedule.BeforeActiveDayChangedEventArgs e) { //---------------------------------------------------------------------------------------------------- // 説明 // BeforeActiveDayChanged // // ActiveDay が変更される前に発生しますキャンセルされた場合、ActiveDay を変更しなくて、 // AfterActiveDayChanged イベントを発生しません // //---------------------------------------------------------------------------------------------------- // 新しい ActiveDay になる日の曜日を取得します System.DayOfWeek dayOfWeek = e.Day.Date.DayOfWeek; // 新しい ActiveDay は土曜日または日曜日であるかどうかを確認します if ( dayOfWeek == System.DayOfWeek.Saturday || dayOfWeek == System.DayOfWeek.Sunday ) { // 週末日のアクティブ化を回避するには、Cancel プロパティを // True に設定します e.Cancel = true; // ユーザーに状態を出力します string info = string.Empty; info += "You cannot activate " + e.Day.Date.ToLongDateString() + " because it falls on a "; info += dayOfWeek.ToString(); MessageBox.Show( info, "BeforeActiveDayChanged", MessageBoxButtons.OK ); } }