Type | Description | |||
Variant | A safe array of Event objects being or to be selected. |
Once the user starts selecting a new event in the schedule panel, the control fires the LayoutStartChanging(exScheduleSelectionChange). Once a new event is selected, the LayoutEndChanging(exScheduleSelectionChange) event occurs. You can use the AllowSelectEvent property to change the key to allow the user select new events or you can prevent selecting any event using exDisallow value.
The following sample shows how you can enumerate the selected events, once the LayoutEndChanging(exScheduleSelectionChange) event occurs.
VB
Private Sub Schedule1_LayoutEndChanging(ByVal Operation As EXSCHEDULELibCtl.LayoutChangingEnum) If Operation = exScheduleSelectionChange Then Dim d As Variant For Each d In Schedule1.Selection Debug.Print "Event: " & d.Start & " " & d.End Next End If End Sub
VB/NET
Private Sub Exschedule1_LayoutEndChanging(ByVal sender As System.Object, ByVal Operation As exontrol.EXSCHEDULELib.LayoutChangingEnum) Handles Exschedule1.LayoutEndChanging If Operation = exontrol.EXSCHEDULELib.LayoutChangingEnum.exScheduleSelectionChange Then Dim evs As List(Of exontrol.EXSCHEDULELib.Event) = Exschedule1.SelEvents If Not evs Is Nothing Then For Each d As exontrol.EXSCHEDULELib.Event In evs Debug.Print("Event: " & d.Start & " " & d.End) Next End If End If End Sub
C#
private void exschedule1_LayoutEndChanging(object sender, exontrol.EXSCHEDULELib.LayoutChangingEnum Operation) { if ( Operation == exontrol.EXSCHEDULELib.LayoutChangingEnum.exScheduleSelectionChange ) { List<exontrol.EXSCHEDULELib.Event> evs = exschedule1.SelEvents; if ( evs != null ) foreach (exontrol.EXSCHEDULELib.Event d in evs) System.Diagnostics.Debug.Print("Event: " + d.Start.ToString() + " " + d.Start.ToString()); } }
VFP
*** ActiveX Control Event *** LPARAMETERS operation * 10 ' exScheduleSelectionChange If Operation = 10 Then local e as Object For Each e In thisform.schedule1.Selection LOCAL ee as Object ee = thisform.Schedule1.Events(e) WAIT WINDOW TTOC(ee.Start) + " " + TTOC(ee.End) ENDFOR EndIf
C++
void CAddEventsDlg::LayoutEndChangingSchedule1(long Operation) { if ( Operation == EXSCHEDULELib::exScheduleSelectionChange ) { _variant_t evs = m_spSchedule->Selection; if ( V_VT( &evs ) == ( VT_ARRAY | VT_VARIANT ) ) { BYTE* p = NULL; long nCount = 0; if ( SUCCEEDED( SafeArrayGetUBound( V_ARRAY( &evs ), 1, &nCount ) ) ) { if ( SUCCEEDED( SafeArrayAccessData( V_ARRAY( &evs ), (LPVOID*)&p ) ) ) { for ( long i = 0; i < nCount + 1; i++, p += sizeof(VARIANT) ) { VARIANT* pValue = (VARIANT*)p; if ( V_VT( pValue ) == VT_DISPATCH ) { EXSCHEDULELib::IEventPtr spEvent = V_DISPATCH( pValue ); CString strMessage; strMessage.Format( _T("Event: %f %f\r\n"), spEvent->Start, spEvent->End ); OutputDebugString( strMessage ); } } SafeArrayUnaccessData( V_ARRAY( &evs ) ); } } } } }
where m_spSchedule is of EXSCHEDULELib::ISchedulePtr type.