C# 实现委托(delegate)事件(二)
2017-12-13 16:17
507 查看
在某个功能实现时要调用某个窗体的某个事件来激发当前功能的某个按钮,举例说明:
在利用ArcEngine进行二次开发时,当图层树上的某一图层关闭后,对应的打开的属性表也要进行关闭,此时就需要用到委托和事件。具体实现如下:
1. 定义全局的委托事件
public delegate void QueryFormCloseEventHandler(string sLayerUID); public class QueryEvent { private static QueryFormCloseEventHandler queryFormCloseEventHandler; public static event QueryFormCloseEventHandler queryFormCloseEvent { add { if (queryFormCloseEventHandler == null || !(queryFormCloseEventHandler.GetInvocationList().Contains(value))) { queryFormCloseEventHandler += value; } } remove { queryFormCloseEventHandler -= value; } } public static void FormClosed(string sLayerUID) { if (queryFormCloseEventHandler != null) { queryFormCloseEventHandler(sLayerUID); } } }
2. 在属性表窗体中调用该事件,调用方法如下所示:
3. 在图层右侧事件中调用该事件的窗体关闭方法:
4.此时,右侧图层移除后,打开的属性表的窗口也会随之被关闭。
注: 有关委托和实现可以查看本人写的C# 实现委托(delegate)事件(一)。相关文章推荐
- 用 C++ 实现 C# 中的 委托/事件 (1-delegateEMU.cpp)
- C# 实现委托(delegate)事件(一)
- C#_delegate - 用委托实现事件,Display和Log类都使用Clock对象
- 用 C++ 实现 C# 中的 委托/事件 (2-delegate event functor)
- C#里的委托和事件实现Observer
- 关于C# 委托(delegate)与事件(event)的用法及事例
- (zz)从callback的角度来理解.NET/C# 中的 委托 (delegate)与 事件 (event)
- C#中的委托(Delegate)和事件(Event)
- C# 委托(delegate)事件(event)分析
- c#中的delegate(委托)和event(事件)
- C#里的委托和事件实现Observer
- c# 关键字delegate、event(委托与事件)[MSDN原文摘录][2]
- C#里的委托和事件实现
- c#中的delegate(委托)和event(事件)
- C#中的委托(Delegate)和事件(Event)
- C# delegate委托及事件
- 用JScript实现VB.Net,C#的[委托Delegate]:
- C# 的委托事件实现(含代码)
- 终于会用c#中的delegate(委托)和event(事件)了
- 委托和事件[delegate and event]_C#