【发布时间】:2026-01-09 21:35:01
【问题描述】:
您将应用程序范围的组件存储在您的 winforms 应用程序中的什么位置?我看到我可以在我的应用程序中创建 Component 的后代。然后,我可以拖放要在项目中的表单之间共享的组件。这是共享访问组件(非可视控件)的最佳实践吗?在 Delphi 中,我们有一个 DataModule。 DataModule 是一个简单的设计表面,用作非可视组件的容器。我会将数据访问对象拖放到这个表面上,并从所有表单中访问它们。它为我的数据对象提供了一个很好的中心位置和缓存。
你们在 Winforms 中是如何做到这一点的?
【问题讨论】:
-
你的意思是组件的全局可访问的受控实例。如果是这样,您可能会对控制反转 IOC 感兴趣。 Microsoft 已经制作了一个 IOC 的示例实现,称为 Unity。
-
@REA_ANDREW,是的,我的意思是全局可访问的控件实例。我有一个额外的要求,即实例是具有设计表面的容器。我已经将 Unity 用于其他目的,但在这种情况下,我想将组件从 VS 工具箱拖放到实例上。
标签: c# winforms scope components