| File: System\Windows\Forms\Design\IEventHandlerService.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms.Design\src\System.Windows.Forms.Design.csproj (System.Windows.Forms.Design) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace System.Windows.Forms.Design; /// <summary> /// The event handler service provides a unified way to handle /// the various events that our form designer must process. What /// we want to be able to do is to write code in one place that /// handles events of a certain type. We also may need to globally /// change the behavior of these events for modal functions like /// the tab order UI. Our designer, however, is in many pieces /// so we must somehow funnel these events to a common place. /// This service implements an "event stack" that contains the /// current set of event handlers. There can be different /// types of handlers on the stack. For example, we may push /// a keyboard handler and a mouse handler. When you request /// a handler, we will find the topmost handler on the stack /// that fits the class you requested. This way the service /// can be extended to any eventing scheme, and it also allows /// sections of a handler to be replaced (eg, you can replace /// mouse handling without effecting menus or the keyboard). /// </summary> internal interface IEventHandlerService { /// <summary> /// Gets the control that handles focus changes /// for this event handler service. /// </summary> Control? FocusWindow { get; } event EventHandler? EventHandlerChanged; /// <summary> /// Gets the currently active event handler of the specified type. /// </summary> object? GetHandler(Type handlerType); /// <summary> /// Pops /// the given handler off of the stack. /// </summary> void PopHandler(object handler); /// <summary> /// Pushes a new event handler on the stack. /// </summary> void PushHandler(object handler); }