private void NotifyEvent(enumContainerEventType eventType, object eventArg) { if (_containerEventHandlers.Count == 0) { return; } bool handled = false; for (int i = 0; i < _containerEventHandlers.Count; i++) { _containerEventHandlers[i].Handle(this, eventType, eventArg, ref handled); if (handled) { break; } } }
public void Handle(object sender, enumContainerEventType eventType, object eventArg, ref bool isHandled) { isHandled = true; switch (eventType) { case enumContainerEventType.Click: Click(sender as IMapControl, eventArg as MouseEventArgs); break; case enumContainerEventType.MouseDown: MouseDown(sender as IMapControl, eventArg as MouseEventArgs); break; case enumContainerEventType.MouseMove: MouseMove(sender as IMapControl, eventArg as MouseEventArgs); break; case enumContainerEventType.MouseUp: MouseUp(sender as IMapControl, eventArg as MouseEventArgs); break; case enumContainerEventType.MouseWheel: MouseWheel(sender as IMapControl, eventArg as MouseEventArgs); break; case enumContainerEventType.MouseDoubleClick: MouseDoubleClick(sender as IMapControl, eventArg as MouseEventArgs); break; default: { isHandled = false; throw new NotSupportedException("暂不支持类型为\"" + eventType.ToString() + "\"的事件处理。"); } } }