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

Event Managers的更多相关文章

  1. ARTIFICIAL INTELLIGENCE FOR GAMES (Ian Millington / John Funge 著)

    相关网站:http://www.ai4g.com PART I AI AND GAMESCHAPTER1 INTRODUCTIONCHAPTER2 GAME AIPART II TECHNIQUESC ...

  2. GUI & Event例子

    Student No.: _______________ Name: ________________________________________1TK2934 Object-Oriented P ...

  3. python网络编程-进程间数据通信(Queue,Pipe ,managers)

    一:进程间数据交换方法 不同进程间内存是不共享的,要想实现两个进程间的数据交换,可以用以下方法: Queue,Pipe ,managers 1)Queue,使用方法跟threading里的queue差 ...

  4. Storm-源码分析-EventManager (backtype.storm.event)

    Protocol and DataType 大体结构, 定义protocol EventManager, 其实就是定义interface 函数event-manager, 主要做2件事 1. 启动ev ...

  5. UI Framework-1: Aura Layout Managers

    Layout Managers LayoutManager is a convenient abstraction that separates messy layout heuristics fro ...

  6. 如何利用ETW(Event Tracing for Windows)记录日志

    ETW是Event Tracing for Windows的简称,它是Windows提供的原生的事件跟踪日志系统.由于采用内核(Kernel)层面的缓冲和日志记录机制,所以ETW提供了一种非常高效的事 ...

  7. [.NET] C# 知识回顾 - Event 事件

    C# 知识回顾 - Event 事件 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6060297.html 序 昨天,通过<C# 知识回顾 - ...

  8. Atitit 解决Unhandled event loop exception错误的办法

    Atitit 解决Unhandled event loop exception错误的办法 查看workspace/.metadata/.log org.eclipse.swt.SWTError: No ...

  9. Java模拟Windows的Event

    场景 开发中遇到一个场景,业务操作会不定时的产生工作任务,这些工作任务需要放入到一个队列中,而另外会有一个线程一直检测这个队列,队列中有任务就从队列中取出并进行运算. 问题 业务场景倒是简单,只不过这 ...

随机推荐

  1. leetcode6 Reverse Words in a String 单词取反

    Reverse Words in a String  单词取反 whowhoha@outlook.com Question: Given an input string s, reverse the ...

  2. cf 357C

    比赛的时候纯暴力超时了  看了别人的代码  set容器类做的   stl里还是有很多好东西的 /**************************************************** ...

  3. ICMP and InetAddress.isReachable()

    In Java it is only possible to work with two types of sockets: stream based ones (or TCP ones - java ...

  4. [mock]12月28日

    假设我们有一个全局升序数组,这个数组长度unlimited现在我们有一个全局的指针和一个目标target值,target和指针你不可见.但是有以下几个操作bool istag();void gorig ...

  5. Qt:使用自定义的字体

    Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体   QFontDatabase::addApplicationFont("XENOTRON.TTF" ...

  6. POJ3660——Cow Contest(Floyd+传递闭包)

    Cow Contest DescriptionN (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a prog ...

  7. 发现可高速缓存的 SSL 页面

    发现可高速缓存的 SSL 页面 技术描述: 缺省情况下,大部分 Web 浏览器都配置成会在使用期间高速缓存用户的页面. 这表示也会高速缓存 SSL 页面.不建议让 Web 浏览器保存任何 SSL 信息 ...

  8. P73、面试题9:斐波那契数列

    题目一:写一个函数,输入n,求斐波那契数列(Fibonacci)数列的第n项,斐波那契数列的定义如下: f(n) = {0  n = 0;  1   n = 1;  f(n-1)+f(n-2)  n& ...

  9. 转:Bitbucket使用方法

    一.软件及SSH keys: 由于我的Bitbucket账号的邮箱及用户名与Github相同,所以SSH Public Keys可以用Github的,登录Bitbucket,悬浮在用户名boliqua ...

  10. Android开发之Service的写法以及与Activity的通信

    Service的总结: 1.按运行地点分类: 类别 区别  优点 缺点   应用 本地服务(Local) 该服务依附在主进程上,  服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外 ...