• 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);
    }
  • 相关阅读:
    leetcode-242-Valid Anagram
    leetcode-232-Implement Queue using Stacks
    机器学习(3)——梯度下降法
    Codeforces Round #305 (Div. 2)D. Mike and Feet(单调栈)
    Codeforces Round #304 (Div. 2)(CF546D) Soldier and Number Game(线性筛)
    Codeforces Round #304 (Div. 2)(CF546E) Soldier and Traveling(最大流)
    机器学习(2)——线性回归法
    Codeforces Round #303 (Div. 2)(CF545) E Paths and Trees(最短路+贪心)
    机器学习(1)——K近邻算法
    简易解说拉格朗日对偶(Lagrange duality)(转载)
  • 原文地址:https://www.cnblogs.com/niaomingjian/p/4090571.html
Copyright © 2020-2023  润新知