【问题标题】:Design apllication with muliple forms within one main form在一个主表单中设计多个表单的应用程序
【发布时间】:2011-06-16 08:19:02
【问题描述】:

我想制作一个应用程序,它有一个主表单,它有一个功能 = 添加新表单。

我不知道表单将如何创建,它们是由用户动态创建的(主表单中的 AddForm 方法)。

所有的 subs 形式都是相同的,但它们的一些 prop 接收不同的参数(它可以在 ctor 或更高版本中)。

我希望在关闭主窗体时能够关闭所有窗体。

在显示新表单之前,我想显示设置表单(获取表单参数)可能使用 ShowDialog 方法并对表单进行验证检查,如果表单验证新表单将显示,如果不是(或者如果用户取消)表单将被处理。

我知道 MDI,但我真的更喜欢其他方式

有什么想法吗?

谢谢!

【问题讨论】:

    标签: c# winforms multiple-forms subforms


    【解决方案1】:

    关闭主窗体时关闭所有窗体有点容易,您只需在“子”窗体的 Show() 方法中传递主窗体引用;例如如果你从 main 中显示 child,你会这样做:

    child.Show(this);

    如果您的主窗体不是真正的“程序主窗体”,但您想关闭所有“子”窗体,则需要这样做。

    然而,为了这个目的,最好在某个特殊的类中将所有这些连接在一起,可能称为 ScreenRepository。在此类中,您将随时拥有一组打开的表单,您会将表单创建推迟到此类(以便此类自动注入表单父级)等等......拥有此类将很容易重新激活(给焦点)如果表单落后于其他表单,则根据需要创建新表单等...

    【讨论】:

      【解决方案2】:

      想法很简单,创建一个应用程序,在开始时打开一个主窗体,然后在需要时打开其他窗体,如果您关闭主窗体,其余窗体也将关闭。就像在 GIMP 中一样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-28
        • 1970-01-01
        相关资源
        最近更新 更多