// Simulate a currently non-existing pre-change event // in DevExpress WinForms 13.2.5 // See http://www.devexpress.com/Support/Center/Question/Details/Q560491 public class MyGalleryControlGallery : GalleryControlGallery { // ... private GalleryItem MyLastCheckedItem { get; set; } internal bool DuringCancelOfCheckChanged { get; set; } protected override void OnCheckedChanged(GalleryItem item, bool forceSetItemCheck) { if (DuringCancelOfCheckChanged) return; var lastItem = MyLastCheckedItem; var args = new GalleryItemCheckChangingEventArgs { CurrentItem = lastItem, NewItem = item, Force = forceSetItemCheck }; // Call my own, new event handler. OnItemCheckedChanging(args); if (args.Cancel) { DuringCancelOfCheckChanged = true; try { if (lastItem != null) lastItem.Checked = true; item.Checked = false; } finally { DuringCancelOfCheckChanged = false; } } else { base.OnCheckedChanged(item, forceSetItemCheck); MyLastCheckedItem = item; } } // ... }