【问题标题】:Winforms user control class accessible by all application所有应用程序均可访问的 Winforms 用户控件类
【发布时间】:2013-07-17 21:48:45
【问题描述】:

我正在创建一个 Winforms 应用程序,它需要一个控件类来管理所有应用程序组件。

我在考虑一个继承自 Component 的类,粘在应用程序的主窗体中。

如何从我的应用程序的任何位置访问这个控件类?这样做的正确方法是什么?

或者我应该改变对这种架构的看法?

【问题讨论】:

  • 你打算用这门课做什么?
  • 标题不太清楚Winforms user control class?所以你想继承System.Windows.Forms.UserControl?,accessible by all application?您想在多个应用程序中访问?
  • 继承自 System.ComponentModel.Component,作为非可视化组件。这个想法是从应用程序的任何点访问这个组件。

标签: c# winforms architecture


【解决方案1】:

首先,您应该记住,将控件粘贴到主窗体中将迫使您在整个用户体验期间保持主窗体处于活动状态,否则您将丢失控件类的实例。 话虽如此,您最好创建一个管理应用程序组件的静态类,以及一个调用管理器类方法的控件。将管理器类作为静态类将允许您在不需要实例的情况下访问其方法。 希望这可以帮助你! 干杯

【讨论】:

    【解决方案2】:

    您可以创建 Static classSingle Instance class 并在整个应用程序中使用。

    注意:静态类应该继承自System.Object,所以使用这种方式不可能从Component继承如果你真的需要从Component派生,你可以选择单实例方法。

    查看Singleton Implementation

    希望对你有帮助

    【讨论】:

    • 我认为这将解决我的问题。感谢您的回答,@Sriram。
    猜你喜欢
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多