【问题标题】:Which is efficient.? Opening Forms inside a panel (or) a MDI container哪个有效。?在面板(或)MDI 容器中打开表单
【发布时间】:2013-03-17 05:51:27
【问题描述】:

我使用SDI 的概念设计了我的application,即Single Document Interface。我的应用程序的结构解释如下,

我的应用程序主要包含两个forms

  • Login Form
  • Main Form

登录表单:

显然,Login Form 最初会被打开,它会询问user credentials,然后如果credential 匹配,我将关闭login form,然后我将显示main form用户。

主窗体:

实际上,main form 由三个panels 组成。第一个面板是dockked top,它将保存menus,第二个面板是dockked right,它将保存所有必要的按钮,如savedeleteexit等,第三个有点重要,它将保存通过menu 打开的forms(Toplevel=false)


我的问题是,我的应用程序中有 100 多个表单,1.) 根据用户请求打开该面板内的所有表单是否有效? [当用户单击右侧的退出按钮panel 时,我将close 那些forms 并将其从panel 中一一删除] 2.) 实现SDI 是否表现得像@987654347 @,有没有disadvantages.? [因为在我的应用程序中,我只是在 SDI 中实现了 MDI 概念]

【问题讨论】:

    标签: vb.net winforms user-interface mdi sdi


    【解决方案1】:

    我实际上只是重写了一个最初是 MDI 的应用程序(实际上和你的完全一样,带有登录和主表单),但我实际上取消了它并转移到多个独立的表单。

    我的看法是,SDI(或 MDI)是一个很好的包含应用程序,其中所有内容都为用户进行了逻辑布局,并且所有内容都可以立即访问。只要您同时打开可管理数量的接口,这一切都很好。如果您需要让用户同时打开多个窗口,尤其是当它们占用大量空间时,您可能会在尝试在单个表单中显示所有窗口时遇到麻烦。

    我还发现,在处理图形数据时,很多用户喜欢在一个屏幕上最大化视觉表示,并在另一个屏幕上保持工具不受干扰,这对于 MDI 或 SDI 应用程序来说可能很难做到(我使用独立表单重建我的应用程序的原因)。

    当然,您必须根据具体情况来看待这个问题。您可能有数百个可以同时打开的表单,但实际上,用户一次只能监视几个,并且一次只能处理一个,因此您必须问自己不是可以打开多少个表单,而是实际上将同时打开多少个表单。 那么也许你可以做出一个设计决定,只允许某些接口组合,或者设计你的应用程序,以便在给定容器中的任何时候都只能加载一定数量的接口。

    我不确定这是否是您正在寻找的答案,但如果对此有明确的答案,或者至少有一些具体的指导方针,那么我也有兴趣了解它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多