首页 > 解决方案 > 如何处理特定对象的创建

问题描述

我的问题是关于 .NET 4.6.2、Winforms 和 C#。假设我们有一个复杂的系统,它使用多个具有非常复杂的 UI 结构(用户控件、停靠面板、选项卡控件等)的 MDI WinForm 实例。请求是准备一些微创机制,通过布局自定义功能扩展此应用程序。用户应该能够移动/调整窗口内容并保存它。我已经实现了这个自定义,但我需要让它自动加载和保存,而不需要修改数百个 OnLoad() 和 Dispose() 方法。我可以这样想象:所有底层的可定制组件都必须实现 ILayoutSupport 接口。

public interface ILayoutSupport
{
   public void RestoreLayout()
   public void SaveLayout();
}
public class MyUserControl: UserControl,ILayoutSupport {...}

此外,还有一个守护程序服务 LayoutController 可以监听所有 ILayoutSupport 实例的创建,它:

我的问题是,这种方法“架构上”是否有效?我尝试在我的 LayoutController 服务中使用 CreateHandle 事件处理程序,但也许有更好的方法来挂钩所有特定类型的创建/处置?我考虑过使用 C# 属性而不是接口并将一些例程注入到我的窗口中,但我不知道它应该怎么做。或者也许有更好的解决方案来解决我的问题?感谢所有评论。

标签: c#winformslayout

解决方案


推荐阅读