バージョン

AppointmentResizing イベント

appointment はエンドユーザーによってサイズ変更されたときに発生されたイベント。
シンタックス
'宣言
 
Public Event AppointmentResizing As AppointmentResizingHandler
public event AppointmentResizingHandler AppointmentResizing
イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、AppointmentResizingEventArgs 型の引数を受け取りました。次の AppointmentResizingEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ解説
Appointment サイズ変更操作が実行されている Appointment を返します。
Cancel System.ComponentModel.CancelEventArgsから継承されます。 
InitialDateTime Infragistics.Win.UltraWinSchedule.CancelableAppointmentDragEventArgsから継承されます。操作が開始されたときにカーソルが上に配置される DateTime を返します。
NewDateTime Infragistics.Win.UltraWinSchedule.CancelableAppointmentDragEventArgsから継承されます。現在カーソル位置に最も近い DateTime を返します。
Phase このイベントの発生を表すサイズ変更操作の段階を決定します。つまり、サイズ変更操作が開始、実行、または終了されているかどうかを返します。
ResizeType 関連付けられた予定の StartDateTime または EndDateTime がサイズ変更操作によって変更するかどうかを返します。
SelectionAction サイズ変更操作が開始される時に、SelectedAppointments コレクションのコンテンツがどのように影響されるかを取得または設定します。
解説

AppointmentsResizing イベントは予定サイズ変更操作のすべての段階でリスナーに通知します。Phase プロパティは、サイズ変更の操作が起動されているか、左ボタンの押下中にエンドユーザーがマウスを移動するのでドラッグが続行しているか、エンドユーザーがマウスを放したので確定するかどうかを識別します。イベントはどの段階でもキャンセルできます。その場合、サイズ変更された予定はドラッグ前の状態に戻ります。SelectionAction プロパティは、サイズ変更の操作開始時に既存予定の選択にどのように影響するかを決定します。例えば、既存の選択がクリアされる、保持される、またはサイズ変更された予定だけが選択されます。

このイベントがキャンセルされない場合、サイズ変更操作の終了時に AppointmentResized イベントが発生されます。

使用例
Imports System.Collections.Generic
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinSchedule
Imports System.Diagnostics


    AddHandler Me.dayView.AppointmentResizing, AddressOf OnAppointmentsResizing

    Private Sub OnAppointmentsResizing(ByVal sender As Object, ByVal e As AppointmentResizingEventArgs)
        Dim control As UltraDayView = sender
        If Not control Is Nothing Then

            '  Get the delta between the original drag point and the new one
            Dim span As TimeSpan = e.InitialDateTime.Subtract(e.NewDateTime)
            Dim delta As Int32 = Math.Abs(span.TotalMinutes)

            '  Access the change history from the Tag property
            Dim changeHistory As List(Of AppointmentChangeHistoryItem) = Nothing
            If e.Appointment.Tag Is Nothing Then e.Appointment.Tag = New List(Of AppointmentChangeHistoryItem)

            changeHistory = e.Appointment.Tag

            '  If the appointment's duration is being increased by more than one hour,
            '  add an entry to the change history
            If (e.Phase = AppointmentResizePhase.Ending AndAlso delta > 60) Then
                changeHistory.Add(New AppointmentChangeHistoryItem(DateTime.Now, e))
            End If

            '  If the duration has been changed more than a certain number
            '  of times, cancel the event
            If e.Phase = AppointmentResizePhase.Beginning AndAlso changeHistory.Count > 5 Then
                e.Cancel = True
                MessageBox.Show("Access denied", "AppointmentsResizing", MessageBoxButtons.OK)
            End If

            '  Clear the selection when a new resize operation begins
            e.SelectionAction = AppointmentResizeSelectionAction.SelectOnlyThisAppointment
        End If

    End Sub

    Public Structure AppointmentChangeHistoryItem

        Public timeStamp As DateTime
        Public data As AppointmentResizingEventArgs
        Public Sub New(ByVal timeStamp As DateTime, ByVal data As AppointmentResizingEventArgs)

            Me.timeStamp = timeStamp
            Me.data = data
        End Sub

    End Structure
using System.Collections.Generic;
using Infragistics.Win;
using Infragistics.Win.UltraWinSchedule;
using System.Diagnostics;


    this.dayView.AppointmentResizing += new AppointmentResizingHandler(OnAppointmentsResizing);            

    private void OnAppointmentsResizing(object sender, AppointmentResizingEventArgs e)
    {
        UltraDayView control = sender as UltraDayView;
        if ( control != null )
        {
            //  Get the delta between the original drag point and the new one
            TimeSpan span = e.InitialDateTime.Subtract( e.NewDateTime );
            int delta = (int)Math.Abs( span.TotalMinutes );

            //  Access the change history from the Tag property
            List<AppointmentChangeHistoryItem> changeHistory = null;
            if ( e.Appointment.Tag == null )
                e.Appointment.Tag = new List<AppointmentChangeHistoryItem>();

            changeHistory = e.Appointment.Tag as List<AppointmentChangeHistoryItem>;
            
            //  If the appointment's duration is being increased by more than one hour,
            //  add an entry to the change history
            if ( e.Phase == AppointmentResizePhase.Ending && delta > 60 )
                changeHistory.Add( new AppointmentChangeHistoryItem(DateTime.Now, e) );

            //  If the duration has been changed more than a certain number
            //  of times, cancel the event
            if ( e.Phase == AppointmentResizePhase.Beginning && changeHistory.Count > 5 )
            {
                e.Cancel = true;
                MessageBox.Show( "Access denied", "AppointmentsResizing", MessageBoxButtons.OK );
            }

            //  Clear the selection when a new resize operation begins
            e.SelectionAction = AppointmentResizeSelectionAction.SelectOnlyThisAppointment;
        }
    }

    public struct AppointmentChangeHistoryItem
    {
        public DateTime timeStamp;
        public AppointmentResizingEventArgs data;
        public AppointmentChangeHistoryItem( DateTime timeStamp, AppointmentResizingEventArgs data )
        {
            this.timeStamp = timeStamp;
            this.data = data;
        }
    }
参照