'宣言 Protected Overridable Sub OnBeforeAppointmentAdded( _ ByVal e As CancelableAppointmentEventArgs _ )
protected virtual void OnBeforeAppointmentAdded( CancelableAppointmentEventArgs e )
イベントが発生すると、デリゲートを通じてイベント ハンドラーが呼び出されます。
OnBeforeAppointmentAdded メソッドを使用すれば、デリゲートを関連付けなくても、派生クラスでイベントを処理できます。これは、派生クラスでイベントを処理する際によく用いられる手法です。
継承時の注意: 派生クラスで OnBeforeAppointmentAdded をオーバーライドする場合は、登録されたデリゲートがイベントを受信できるようにするため、必ず基本クラスの OnBeforeAppointmentAdded メソッドを呼び出してください。
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinSchedule Imports System.Diagnostics Private Sub ultraCalendarInfo1_BeforeAppointmentAdded(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinSchedule.CancelableAppointmentEventArgs) Handles ultraCalendarInfo1.BeforeAppointmentAdded '---------------------------------------------------------------------------------------------------- ' 説明 ' BeforeAppointmentAdded ' ' 新しい予定がコンポーネントの Appointments コレクションに追加される前に発生します ' キャンセルされる場合、Appointment は追加されずに、AfterAppointmentAdded イベントも発生しません ' '---------------------------------------------------------------------------------------------------- If (e.Appointment.StartDateTime.DayOfWeek = System.DayOfWeek.Monday) Then ' Appointment の追加を回避するには、Cancel プロパティを ' True に設定します e.Cancel = True ' ユーザーに状態を出力します Dim info As String = String.Empty info += "Sorry, but we are no longer accepting new appointments on " info += e.Appointment.StartDateTime.DayOfWeek.ToString() + "s" MessageBox.Show(info, "BeforeAppointmentAdded", MessageBoxButtons.OK, MessageBoxIcon.Stop) End If End Sub
using System.Diagnostics; using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinSchedule; private void ultraCalendarInfo1_BeforeAppointmentAdded(object sender, Infragistics.Win.UltraWinSchedule.CancelableAppointmentEventArgs e) { //---------------------------------------------------------------------------------------------------- // 説明 // BeforeAppointmentAdded // // 新しい予定がコンポーネントの Appointments コレクションに追加される前に発生します // キャンセルされる場合、Appointment は追加されずに、AfterAppointmentAdded イベントも発生しません // //---------------------------------------------------------------------------------------------------- if ( e.Appointment.StartDateTime.DayOfWeek == System.DayOfWeek.Monday ) { // Appointment の追加を回避するには、Cancel プロパティを // True に設定します e.Cancel = true; // ユーザーに状態を出力します string info = string.Empty; info += "Sorry, but we are no longer accepting new appointments on "; info += e.Appointment.StartDateTime.DayOfWeek.ToString() + "s"; MessageBox.Show( info, "BeforeAppointmentAdded", MessageBoxButtons.OK, MessageBoxIcon.Stop ); } }