Event Managers

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);

}

 

你可能感兴趣的:(manager)