我使用概念application
设计了我的SDI
,即Single Document Interface
。我的应用程序的结构解释如下,
我的应用程序主要包含两个forms
,
Login Form
Main Form
登录表单
显然,Login Form
最初会被打开,它会要求user credentials
,然后加入credential
匹配,我将关闭login form
然后关闭{i} ll为用户显示main form
。
主要表格:
实际上,main form
由三个panels
组成。第一个面板为dockked top
,它将保留menus
,第二个面板为dockked right
,它将包含所有必要的按钮,例如save
,delete
,{{ 1}}等等,第三个有点重要,它将保留exit
通过forms(Toplevel=false)
打开的。{/ p>
我的问题是,我的应用程序中有100多个表单,1。)根据用户的请求打开该面板中的所有表单是否有效。 [我将menu
close
forms
当用户点击右侧panel
的退出按钮时,逐一将其从panel
中删除.2。)是否实施{ {1}}表现得像SDI
,有任何MDI
。 [因为在我的应用中,我刚刚在disadvantages
]
MDI
概念
答案 0 :(得分:0)
我实际上只是重新编写了一个应用程序(与您的实际情况一样,使用登录和主要表单),最初是MDI,但实际上我已经废除了它并转移到多个独立的表单。
我看到它的方式是SDI(或MDI)构成一个包含良好的应用程序,其中所有内容都按逻辑布局为用户提供,所有内容都可以立即访问。只要您同时打开可管理数量的接口,这一切都很好。如果您需要让用户同时打开许多窗口,特别是如果它们占用大量空间,您可能会在单个窗体中尝试显示所有窗口时遇到麻烦。
我还发现许多用户在使用图形数据时最喜欢在一个屏幕上显示可视化表示并将工具放在另一个屏幕上,这对于MDI或SDI应用程序来说很难做到(我使用独立表单重建我的应用程序的原因。)
当然,你必须根据具体情况来看这个问题。您可能有数百种可以同时打开的表单,但实际上,用户一次只能监控几个,一次只能处理一个,所以你不得不问自己有多少表单可以打开,但是实际上会同时打开多少种形式。 那么也许您可以做出一个设计决定,只允许接口的某些组合或设计您的应用程序,使得在给定容器中任何时候只能加载一定数量的接口。
我不确定这是否是您正在寻找的那种答案,但如果对此有一个明确的答案,或者至少是一些具体的指导方针,那么我也有兴趣了解它们。