以一种好的方式处理/设计C#中的事件用法

以一种好的方式处理/设计C#中的事件用法,c#,winforms,events,design-patterns,delegates,C#,Winforms,Events,Design Patterns,Delegates,我正在为我们的内部员工编写一个类似文本编辑器的小实用程序,用于修改公司特定的文件。我想设计这样一种方式,我们尽量减少泄漏处理程序,并希望征求意见 根据加载的文件类型,可以执行不同的操作。我将它们放在一个单独的类中,实例化并传递richtextbox的活动选项卡实例。然后,实现订阅以下内容: 选择已更改 文本更改 然后根据文件的类型,他们将处理特定的事情。我注意到,我们的一些内部开发人员不退订事件和事件。控件挂起(它不是MDI应用程序,不是面板+选项卡控件+许多RichTextBox) 将对事件的

我正在为我们的内部员工编写一个类似文本编辑器的小实用程序,用于修改公司特定的文件。我想设计这样一种方式,我们尽量减少泄漏处理程序,并希望征求意见

根据加载的文件类型,可以执行不同的操作。我将它们放在一个单独的类中,实例化并传递richtextbox的活动选项卡实例。然后,实现订阅以下内容:

选择已更改 文本更改

然后根据文件的类型,他们将处理特定的事情。我注意到,我们的一些内部开发人员不退订事件和事件。控件挂起(它不是MDI应用程序,不是面板+选项卡控件+许多RichTextBox)

将对事件的订阅责任委托给这些实现的好方法是什么


我是否应该编写一个代理(他们都订阅了该代理),我的Richtextbox基本上可以让该代理在发生某些事情时为我调用它,并且在选项卡更改时根据需要订阅/取消订阅?有没有既定的模式——可能是四人帮?这可能是我应该使用的吗?

是的。只需基于类型调用相应的类方法来创建代理类

控件没有任何好办法比其父控件更长寿,当父控件被释放时,它就会被释放。如果您看到其他错误,那么这是一个非常经典的winforms错误,客户端代码调用Controls.Clear()或Remove(),而不同时处理删除的控件。