Some PLF-based controls expose a convenient facility for temporarily disabling their events and for checking if an event is being raised. The following sample code illustrates how it is used.
using Infragistics.Win; using Infragistics.Win.UltraWinGrid; private void button2_Click(object sender, System.EventArgs e) { if (this.ultraGrid1.ActiveRow == null) return; // Get the grid's event manager. // The event manager is used to temporarily disable events // to prevent them from being raised. This can be very // convenient in a situation where one or more properties // are being set in code and the events they would normally // raise would cause unnecessary or counter-productive // code to be executed. // // Note: All events are enabled by default. GridEventManager eventManager = this.ultraGrid1.EventManager; // Disable the Before/AfterSelectChange events eventManager.SetEnabled(GridEventIds.BeforeSelectChange, false); eventManager.SetEnabled(GridEventIds.AfterSelectChange, false); // Toggle the selection state of the active row. // Note: This would normally cause the Before/AfterSelectChange // events to be raised. However, since the above code disabled // the events they won't be. this.ultraGrid1.ActiveRow.Selected = !this.ultraGrid1.ActiveRow.Selected; // Re-enable the Before/AfterSelectChange events eventManager.SetEnabled(GridEventIds.BeforeSelectChange, true); eventManager.SetEnabled(GridEventIds.AfterSelectChange, true); // The 'AllEventsEnabled' property lets you enable/disable // all events will a single line of code. If any event is // disabled the 'AllEventsEnabled' property returns false. if (!eventManager.AllEventsEnabled) eventManager.AllEventsEnabled = true; // The event manager also exposes an 'IsEnabled' method // to see if an event is enabled or disabled. if (!eventManager.IsEnabled(GridEventIds.BeforeSelectChange)) eventManager.SetEnabled(GridEventIds.BeforeSelectChange, true); // The grid event manager also exposes overloaded // 'IsEnabled' and 'SetEnabled' methods that take an // event group so that, for example all 'Before' or all // 'After' events can be enabled/disabled. If any event // in the group is disabled the 'IsEnabled' method returns // false. if (!eventManager.IsEnabled(EventGroups.BeforeEvents)) eventManager.SetEnabled(EventGroups.BeforeEvents, true); eventManager.SetEnabled(EventGroups.AfterEvents, true); // The 'InProgress' method will return true if the // specified event is currently being raised. This // is often helpful in methods that can be called // from various points in an application to determine // what is triggering the call. if (eventManager.InProgress(GridEventIds.BeforeSelectChange)) { // ... } // The UltraCombo and UltraDropDown controls also expose // event managers for their custom events. However, // since they have considerably fewer events they don't // expose overloaded 'IsEnabled' and 'SetEnabled' methods // to control groups of events. ComboEventManager comboManager = this.ultraCombo1.EventManager; comboManager.SetEnabled(ComboEventIds.BeforeDropDown, true); DropDownEventManager dropDownManager = this.ultraDropDown1.EventManager; dropDownManager.SetEnabled(DropDownEventIds.AfterCloseUp, true); }