Log In
Home
Support
Demos
Documentation
Blogs
Training
Webinars
[Expand]General Information
[Collapse]WinForms Controls
  Prerequisites
 [Expand]What's Installed
 [Expand]Build an Application
 [Expand]Controls and Libraries
 [Expand]Common Features
  Get More Help
 [Collapse]API Reference
  [Expand]DevExpress.DataAccess.UI.Design
  [Expand]DevExpress.DataAccess.UI.EntityFramework
  [Expand]DevExpress.DataAccess.UI.Excel
  [Expand]DevExpress.DataAccess.UI.Localization
  [Expand]DevExpress.DataAccess.UI.ObjectBinding
  [Expand]DevExpress.DataAccess.UI.Sql
  [Expand]DevExpress.DataAccess.UI.Wizard
  [Expand]DevExpress.DataAccess.UI.Wizard.Services
  [Expand]DevExpress.DataAccess.UI.Wizard.Views
  [Expand]DevExpress.DocumentView
  [Expand]DevExpress.DocumentView.Controls
  [Expand]DevExpress.LookAndFeel
  [Expand]DevExpress.LookAndFeel.Helpers
  [Expand]DevExpress.Skins
  [Expand]DevExpress.Snap
  [Expand]DevExpress.Snap.API.Native
  [Expand]DevExpress.Snap.Core
  [Expand]DevExpress.Snap.Core.API
  [Expand]DevExpress.Snap.Core.Fields
  [Expand]DevExpress.Snap.Core.Forms
  [Expand]DevExpress.Snap.Core.Options
  [Expand]DevExpress.Snap.Core.Services
  [Expand]DevExpress.Snap.Extensions
  [Expand]DevExpress.Snap.Extensions.Localization
  [Expand]DevExpress.Snap.Localization
  [Expand]DevExpress.Snap.Options
  [Expand]DevExpress.Snap.Services
  [Expand]DevExpress.Utils
  [Expand]DevExpress.Utils.Animation
  [Expand]DevExpress.Utils.Controls
  [Expand]DevExpress.Utils.Drawing
  [Expand]DevExpress.Utils.Menu
  [Expand]DevExpress.Utils.Taskbar
  [Expand]DevExpress.Utils.Taskbar.Core
  [Expand]DevExpress.Utils.UI.Localization
  [Expand]DevExpress.Utils.VisualEffects
  [Expand]DevExpress.Utils.Win
  [Expand]DevExpress.XtraBars
  [Expand]DevExpress.XtraBars.Alerter
  [Expand]DevExpress.XtraBars.Docking
  [Expand]DevExpress.XtraBars.Docking2010
  [Expand]DevExpress.XtraBars.Docking2010.Customization
  [Expand]DevExpress.XtraBars.Docking2010.Views
  [Expand]DevExpress.XtraBars.Docking2010.Views.NativeMdi
  [Expand]DevExpress.XtraBars.Docking2010.Views.Tabbed
  [Expand]DevExpress.XtraBars.Docking2010.Views.Widget
  [Expand]DevExpress.XtraBars.Docking2010.Views.WindowsUI
  [Expand]DevExpress.XtraBars.Localization
  [Expand]DevExpress.XtraBars.Navigation
  [Expand]DevExpress.XtraBars.Ribbon
  [Expand]DevExpress.XtraBars.Ribbon.Gallery
  [Expand]DevExpress.XtraBars.Ribbon.ViewInfo
  [Expand]DevExpress.XtraBars.ToastNotifications
  [Expand]DevExpress.XtraBars.Utils
  [Expand]DevExpress.XtraBars.WinRTLiveTiles
  [Expand]DevExpress.XtraCharts
  [Expand]DevExpress.XtraCharts.Designer
  [Expand]DevExpress.XtraCharts.Wizard
  [Expand]DevExpress.XtraDataLayout
  [Expand]DevExpress.XtraDiagram
  [Expand]DevExpress.XtraDiagram.Options
  [Expand]DevExpress.XtraEditors
  [Expand]DevExpress.XtraEditors.ButtonPanel
  [Expand]DevExpress.XtraEditors.Calendar
  [Expand]DevExpress.XtraEditors.Camera
  [Expand]DevExpress.XtraEditors.Container
  [Expand]DevExpress.XtraEditors.Controls
  [Expand]DevExpress.XtraEditors.CustomEditor
  [Expand]DevExpress.XtraEditors.DXErrorProvider
  [Expand]DevExpress.XtraEditors.Filtering
  [Expand]DevExpress.XtraEditors.Mask
  [Expand]DevExpress.XtraEditors.Persistent
  [Expand]DevExpress.XtraEditors.Repository
  [Expand]DevExpress.XtraEditors.ViewInfo
  [Expand]DevExpress.XtraFilterEditor
  [Expand]DevExpress.XtraGauges.Presets.Styles
  [Expand]DevExpress.XtraGauges.Win
  [Expand]DevExpress.XtraGauges.Win.Base
  [Expand]DevExpress.XtraGauges.Win.Gauges.Circular
  [Expand]DevExpress.XtraGauges.Win.Gauges.Digital
  [Expand]DevExpress.XtraGauges.Win.Gauges.Linear
  [Expand]DevExpress.XtraGauges.Win.Gauges.State
  [Expand]DevExpress.XtraGrid
  [Expand]DevExpress.XtraGrid.Columns
  [Expand]DevExpress.XtraGrid.EditForm
  [Expand]DevExpress.XtraGrid.FilterEditor
  [Expand]DevExpress.XtraGrid.Localization
  [Expand]DevExpress.XtraGrid.Views.BandedGrid
  [Expand]DevExpress.XtraGrid.Views.BandedGrid.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Base
  [Expand]DevExpress.XtraGrid.Views.Base.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Card
  [Expand]DevExpress.XtraGrid.Views.Card.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Grid
  [Expand]DevExpress.XtraGrid.Views.Grid.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Layout
  [Expand]DevExpress.XtraGrid.Views.Layout.Events
  [Expand]DevExpress.XtraGrid.Views.Layout.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Printing
  [Expand]DevExpress.XtraGrid.Views.Tile
  [Expand]DevExpress.XtraGrid.Views.WinExplorer
  [Expand]DevExpress.XtraGrid.WinExplorer
  [Expand]DevExpress.XtraLayout
  [Expand]DevExpress.XtraLayout.Customization
  [Expand]DevExpress.XtraLayout.HitInfo
  [Expand]DevExpress.XtraLayout.Localization
  [Expand]DevExpress.XtraLayout.Utils
  [Expand]DevExpress.XtraMap
  [Expand]DevExpress.XtraMap.Printing
  [Expand]DevExpress.XtraNavBar
  [Expand]DevExpress.XtraNavBar.ViewInfo
  [Expand]DevExpress.XtraPdfViewer
  [Expand]DevExpress.XtraPdfViewer.Commands
  [Expand]DevExpress.XtraPdfViewer.Localization
  [Expand]DevExpress.XtraPivotGrid
  [Expand]DevExpress.XtraPivotGrid.Data
  [Expand]DevExpress.XtraPrinting
  [Expand]DevExpress.XtraPrinting.Control
  [Expand]DevExpress.XtraPrinting.Preview
  [Expand]DevExpress.XtraPrintingLinks
  [Expand]DevExpress.XtraReports.UI
  [Expand]DevExpress.XtraRichEdit
  [Expand]DevExpress.XtraRichEdit.Commands
  [Expand]DevExpress.XtraRichEdit.Export
  [Expand]DevExpress.XtraRichEdit.Import
  [Expand]DevExpress.XtraRichEdit.Localization
  [Expand]DevExpress.XtraRichEdit.Menu
  [Collapse]DevExpress.XtraScheduler
   [Expand]ActiveViewChangingEventArgs Class
    ActiveViewChangingEventHandler Delegate
   [Expand]AgendaView Class
   [Expand]AgendaViewAppearance Class
   [Expand]AppointmentDependencyFormEventArgs Class
    AppointmentDependencyFormEventHandler Delegate
   [Expand]AppointmentDependencyStorage Class
   [Expand]AppointmentDragDropOptions Class
   [Expand]AppointmentFormEventArgs Class
    AppointmentFormEventHandler Delegate
   [Expand]AppointmentImagesEventArgs Class
    AppointmentImagesEventHandler Delegate
   [Expand]AppointmentLabel Class
   [Expand]AppointmentLabelCollection Class
   [Expand]AppointmentLabelExtension Class
   [Expand]AppointmentStatus Class
   [Expand]AppointmentStatusCollection Class
   [Expand]AppointmentStatusExtension Class
   [Expand]AppointmentStorage Class
   [Expand]AppointmentViewInfoCustomizingEventArgs Class
    AppointmentViewInfoCustomizingEventHandler Delegate
   [Expand]BaseHeaderAppearance Class
   [Expand]BaseViewAppearance Class
   [Expand]CustomDrawAppointmentFlyoutSubjectEventArgs Class
    CustomDrawAppointmentFlyoutSubjectEventHandler Delegate
   [Expand]CustomDrawObjectEventArgs Class
    CustomDrawObjectEventHandler Delegate
   [Expand]CustomizeAppointmentFlyoutEventArgs Class
    CustomizeAppointmentFlyoutEventHandler Delegate
   [Expand]CustomizeDateNavigationBarCaptionEventArgs Class
    DateNavigationMode Enumeration
   [Expand]DateNavigator Class
   [Expand]DayView Class
   [Expand]DayViewAppearance Class
   [Expand]DayViewAppointmentDisplayOptionsEx Class
   [Expand]DeleteRecurrentAppointmentFormEventArgs Class
    DeleteRecurrentAppointmentFormEventHandler Delegate
    DragDropMode Enumeration
   [Expand]EditRecurrentAppointmentFormEventArgs Class
    EditRecurrentAppointmentFormEventHandler Delegate
   [Expand]FullWeekView Class
   [Expand]GanttView Class
   [Expand]GanttViewAppearance Class
   [Expand]GotoDateFormEventArgs Class
    GotoDateFormEventHandler Delegate
   [Expand]IAppointmentStorage Interface
   [Expand]InplaceEditorEventArgs Class
    InplaceEditorEventHandler Delegate
   [Expand]ISchedulerInplaceEditor Interface
   [Expand]ISchedulerStorage Interface
    LayoutElementKind Enumeration
   [Expand]LayoutViewInfoCustomizingEventArgs Class
   [Expand]MonthView Class
   [Expand]MonthViewAppearance Class
   [Expand]MonthViewAppointmentDisplayOptionsEx Class
   [Expand]PopupMenuShowingEventArgs Class
    PopupMenuShowingEventHandler Delegate
   [Expand]PrepareContextMenuEventArgs Class
    PrepareContextMenuEventHandler Delegate
   [Expand]PrepareFilterColumnEventArgs Class
    PrepareFilterColumnEventHandler Delegate
   [Expand]PreparePopupMenuEventArgs Class
    PreparePopupMenuEventHandler Delegate
   [Expand]RecurrentAppointmentActionFormEventArgs Class
   [Expand]RemindersFormEventArgs Class
    RemindersFormEventHandler Delegate
   [Expand]ResourceExtension Class
   [Expand]ResourceNavigator Class
   [Expand]ResourceStorage Class
   [Expand]ScaleBasedRangeControlClientOptions Class
   [Expand]SchedulerAppearance Class
    SchedulerColorId Enumeration
   [Expand]SchedulerColorSchema Class
   [Expand]SchedulerColorSchemaCollection Class
   [Collapse]SchedulerControl Class
     SchedulerControl Members
    [Expand]SchedulerControl Constructor
    [Expand]SchedulerControl Properties
    [Collapse]SchedulerControl Events
      ActiveViewChanged Event
      ActiveViewChanging Event
      AdditionalAppointmentsDrag Event
      AllowAppointmentConflicts Event
      AllowAppointmentCopy Event
      AllowAppointmentCreate Event
      AllowAppointmentDelete Event
      AllowAppointmentDrag Event
      AllowAppointmentDragBetweenResources Event
      AllowAppointmentEdit Event
      AllowAppointmentResize Event
      AllowInplaceEditor Event
      AppointmentDrag Event
      AppointmentDrop Event
      AppointmentResized Event
      AppointmentResizing Event
      AppointmentViewInfoCustomizing Event
      BeforeLoadLayout Event
      ContextButtonCustomize Event
      CustomDrawAppointment Event
      CustomDrawAppointmentBackground Event
      CustomDrawAppointmentFlyoutSubject Event
      CustomDrawDayHeader Event
      CustomDrawDayOfWeekHeader Event
      CustomDrawDayViewAllDayArea Event
      CustomDrawDayViewTimeRuler Event
      CustomDrawDependency Event
      CustomDrawGroupSeparator Event
      CustomDrawNavigationButton Event
      CustomDrawResourceHeader Event
      CustomDrawTimeCell Event
      CustomDrawTimeIndicator Event
      CustomDrawView Event
      CustomDrawWeekViewTopLeftCorner Event
      CustomizeAppointmentFlyout Event
      CustomizeDateNavigationBarCaption Event
      CustomizeMessageBoxCaption Event
      DateNavigatorQueryActiveViewType Event
      DeleteRecurrentAppointmentFormShowing Event
      EditAppointmentDependencyFormShowing Event
      EditAppointmentFormShowing Event
      EditRecurrentAppointmentFormShowing Event
      GotoDateFormShowing Event
      GroupTypeChanged Event
      InitAppointmentDisplayText Event
      InitAppointmentImages Event
      InitNewAppointment Event
      InplaceEditorShowing Event
      LayoutUpgrade Event
      LayoutViewInfoCustomizing Event
      MoreButtonClicked Event
      PopupMenuShowing Event
      PrepareContextMenu Event
      PreparePopupMenu Event
      QueryResourceColorSchema Event
      QueryWorkTime Event
      RangeControlAutoAdjusting Event
      RemindersFormDefaultAction Event
      RemindersFormShowing Event
      SelectionChanged Event
      StorageChanged Event
      VisibleIntervalChanged Event
      VisibleResourcesChanged Event
    [Expand]SchedulerControl Methods
   [Expand]SchedulerDateNavigationBar Class
   [Expand]SchedulerDeferredScrollingOption Class
   [Expand]SchedulerInplaceEditorEventArgs Class
   [Expand]SchedulerMenuCheckItem Class
   [Expand]SchedulerMenuItem Class
   [Expand]SchedulerOptionsBehavior Class
   [Expand]SchedulerOptionsPrint Class
   [Expand]SchedulerOptionsRangeControl Class
   [Expand]SchedulerOptionsView Class
   [Expand]SchedulerPopupMenu Class
   [Expand]SchedulerResourceHeaderOptions Class
   [Expand]SchedulerStorage Class
   [Expand]SchedulerViewBase Class
   [Expand]SchedulerViewRepository Class
    SchedulerViewStatusDisplayType Enumeration
   [Expand]ShowFormEventArgs Class
   [Expand]TimeIndicatorDisplayOptions Class
   [Expand]TimelineView Class
   [Expand]TimelineViewAppearance Class
   [Expand]TimelineViewAppointmentDisplayOptionsEx Class
   [Expand]WeekView Class
   [Expand]WeekViewAppearance Class
   [Expand]WeekViewAppointmentDisplayOptionsEx Class
   [Expand]WorkWeekView Class
   [Expand]WorkWeekViewAppearance Class
  [Expand]DevExpress.XtraScheduler.Drawing
  [Expand]DevExpress.XtraScheduler.Printing
  [Expand]DevExpress.XtraScheduler.Reporting
  [Expand]DevExpress.XtraScheduler.Reporting.UI
  [Expand]DevExpress.XtraScheduler.Services
  [Expand]DevExpress.XtraScheduler.Services.Implementation
  [Expand]DevExpress.XtraScheduler.UI
  [Expand]DevExpress.XtraSpellChecker
  [Expand]DevExpress.XtraSpellChecker.Localization
  [Expand]DevExpress.XtraSplashForm
  [Expand]DevExpress.XtraSplashScreen
  [Expand]DevExpress.XtraSpreadsheet
  [Expand]DevExpress.XtraSpreadsheet.Services
  [Expand]DevExpress.XtraTab
  [Expand]DevExpress.XtraTab.Buttons
  [Expand]DevExpress.XtraTab.ViewInfo
  [Expand]DevExpress.XtraTabbedMdi
  [Expand]DevExpress.XtraToolbox
  [Expand]DevExpress.XtraTreeList
  [Expand]DevExpress.XtraTreeList.Columns
  [Expand]DevExpress.XtraTreeList.Data
  [Expand]DevExpress.XtraTreeList.Localization
  [Expand]DevExpress.XtraTreeList.Menu
  [Expand]DevExpress.XtraTreeList.Nodes
  [Expand]DevExpress.XtraTreeList.Nodes.Operations
  [Expand]DevExpress.XtraTreeList.StyleFormatConditions
  [Expand]DevExpress.XtraTreeMap
  [Expand]DevExpress.XtraVerticalGrid
  [Expand]DevExpress.XtraVerticalGrid.Events
  [Expand]DevExpress.XtraVerticalGrid.Localization
  [Expand]DevExpress.XtraVerticalGrid.Rows
  [Expand]DevExpress.XtraWaitForm
  [Expand]DevExpress.XtraWizard
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Document Server
[Expand]Reporting
[Expand]Report Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]CodeRush
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation

SchedulerControl.AllowAppointmentConflicts Event

Occurs when the scheduler finds appointments that are in conflict, and the DevExpress.XtraScheduler.SchedulerOptionsCustomization.AllowAppointmentConflicts property is set to Custom.

Namespace:DevExpress.XtraScheduler
Assembly:DevExpress.XtraScheduler.v17.1.dll

Expanded Syntax

Expanded Event Data

The event handler receives an argument of type AppointmentConflictEventArgs containing data related to this event.

Expanded Remarks

Handle the AllowAppointmentConflicts event to manually decide whether the current appointment conflicts with any other appointments. The appointment copy to check can be accessed via the DevExpress.XtraScheduler.AppointmentEventArgs.Appointment property.

Expanded How to Signalize a Conflict

This event's arguments provide the DevExpress.XtraScheduler.AppointmentConflictEventArgs.Conflicts property, which returns the collection of appointments that are considered to be conflicting by the XtraScheduler. If the Conflicts collection is empty, this means that there are no conflicting appointments.

If you determine that the current appointment has no conflicts, you should clear the Conflicts collection in this event's handler. If you determine that the current appointment has at least one conflict, then the Conflicts collection should contain at least one object that is different from the current appointment. In other words, the source appointment (accessed via the DevExpress.XtraScheduler.AppointmentEventArgs.Appointment property) or its copy isn't considered to be conflicting if it's present in the Conflicts collection. There should be other appointments in this collection to indicate the conflict.

The non-empty Conflicts collection cancels the user action that caused the conflict. Common practice is to clear the Conflicts collection at the beginning, and populate it with any appointment if the user's action should be canceled. You can even create a fake appointment for this purpose, and add it to the collection.

Expanded What Properties to Analyze

The Appointment property of the DevExpress.XtraScheduler.AppointmentConflictEventArgs gets an appointment before modification.

The DevExpress.XtraScheduler.AppointmentConflictEventArgs.AppointmentClone property contains an appointment modified due to an end-user's action. If an appointment is being edited using standard or customized dialogs, the Appointment property is an appointment before the end-user dialog is initiated. The AppointmentClone property gets an appointment being modified by means of the end-user dialog.

In a drag operation, the AppointmentClone is the appointment that intersects with existing ones. The Appointment property provides access to the current appointment before modification. So, when an appointment is dragged, its clone may conflict with the original appointment, and the Conflicts collection may contain one element - the original appointment.

Show Me

A complete sample project is available in the DevExpress Code Examples database at http://www.devexpress.com/example=T224044.

The following code snippet illustrates handling of the AllowAppointmentConflicts event for conflict resolution. When an appointment is modified or created, and the DevExpress.XtraScheduler.SchedulerOptionsCustomization.AllowAppointmentConflicts property is set to DevExpress.XtraScheduler.AppointmentConflictsMode.Custom, the AllowAppointmentConflicts event occurs. The code in the event handler checks whether the time interval of the modified appointment intersects with other appointments, including recurrent series and exceptions. If such an appointment is found, it is added to the DevExpress.XtraScheduler.AppointmentConflictEventArgs.Conflicts collection. If the collection has at least one element, a conflict occurs and the Scheduler cancels changes.

The appointment editing form in its OnOkButton method checks for appointment conflicts using the DevExpress.XtraScheduler.UI.AppointmentFormControllerBase.IsConflictResolved method. If it returns false, the edited appointment cannot be saved and a proper message appears. This message text can be modified by the Localizer technique, i.e., overriding the Localizer.GetLocalizedString method in a SchedulerLocalizer descendant, and specifying the required text for the SchedulerStringId.Msg_Conflict identifier. Please review the Localizing WinForms Controls via Localizer Objects document, for more information.

Expanded See Also

How would you rate this topic?​​​​​​​