c# - 冒泡事件。

标签 c# winforms events

我在应用程序中有多个层,我发现自己必须将事件冒泡到 GUI 层以进行状态栏更改等。 .我发现自己不得不编写重复的代码,其中每一层都简单地订阅来自较低层的事件,然后在回调中简单地在链上引发一个事件。有更有效的方法吗?

最佳答案

如果您所做的只是从另一个事件处理程序触发一个事件处理程序,您可以去掉中间人并直接在事件的添加/删除 block 中挂接事件处理程序。

例如,如果您有一个带有“SaveButtonClick”事件的 UserControl,并且您想要做的就是在单击 UserControl 上的“SaveButton”时调用事件处理程序,您可以这样做:

public event EventHandler SaveButtonClick
{
    add { this.SaveButton.Click += value; }
    remove { this.SaveButton.Click -= value; }
}

现在您不需要任何代码来触发 SaveButtonClick 事件 - 它会在引发 SaveButton.Click 事件时自动触发(即当有人单击该按钮时)。

关于c# - 冒泡事件。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/217233/

相关文章:

android - this.Touch - 多次触发事件,不知道如何取消订阅

c# - 这是托管 WCF 服务的正确方法吗?

c# - 如何为 Windows 创建自定义 Shell 上下文处理程序?

c# - 如何像查询一样参数化mysql?

c# - 如何阻止带有过滤器集的 DataGridView 在列表中移动得太远?

c# - Visual Studio WinForms 设计器不实例化对象

reactjs - ElectronJS React自定义菜单事件未定义

c++ - 如何检测我的 Windows 应用程序是否已结束?

c# - 使用 TypeMock 模拟 Autofac 的 "Resolve"扩展方法

C# - 如何修改 getter 给出的结构?