【问题标题】:In winforms which is the best way [many windows form-Mdiparent] or [many usercontrols-one forms]?在winforms中[许多窗口窗体-Mdi Parent]或[许多用户控件-一个窗体]哪个是最好的方式?
【发布时间】:2011-12-06 09:17:07
【问题描述】:

我们正在创建一个新的 winforms 应用程序。出于不同的目的,我们有不同的用户界面。但是我们不确定是否应该将这些不同的 UI 项实现为

  • 新的 windows 窗体对象 - 带有 mdiparent 子对象 -
  • 作为用户控件-一个主窗体和许多包含其他页面的tabitems作为用户控件-

    哪一个最适合开发人员友好、用户友好等? 或者有什么好的 3rd 方解决方案可以更好地管理一个应用程序中的多个表单?

【问题讨论】:

    标签: .net winforms


    【解决方案1】:

    这真的取决于你想要完成什么。

    当单个程序处理相同类型的多个文档(Word、Excel 是典型示例)时,Microsoft 曾经建议使用 MDI。但这似乎最近已经失宠了。我注意到即使是最新版本的 office 也不使用 MDI。

    如果您想在标签样式界面(例如现代 Web 浏览器)中管理多个相同类型的文档,那么 Infragistics 提供了一个漂亮而灵活的标签控件集 (http://www.infragistics.com/dotnet/netadvantage /winforms/wintab.aspx)。

    【讨论】:

      【解决方案2】:

      我推荐 MDI 表格的原因如下:

      1. 您可以创建父表单类,作为您的主表单,而所有其他 MDI 表单都扩展了此主表单。

      2. 对于 MDI 表单,框架已经处理了窗口管理行为。无需手动实现、最小化、恢复、最大化或关闭窗口。

      3. MDI 表单允许您同时显示多个窗口/控件。选项卡一次显示一个。因此,如果您的用户将在窗口之间比较数据,请使用 MDI。

      4. 您可以选择关闭 MDI 表单,该表单将处理并导致对象的关联实例被垃圾收集。这将使您的应用程序内存高效。选项卡无法关闭,并且您的用户控件实例将始终在后台存在(虽然我还没有测试过)。

      5. MDI 表格已经过数十年的测试。

      6. 由于每个窗口都有单独的 .cs 文件,因此 MDI 表单的代码更简洁。使用选项卡,您的包含选项卡的表单中的代码可能会变得非常大。

      【讨论】:

      • 在使用 mdi 表单时,我们还希望显示打开页面的用户列表,并在此菜单列表中找到所有打开的子 mdi;正如你猜到的,这个列表与 tabcontrol 没有什么不同。但是您无法将 mdi 表单插入到 tabcontrol 中,因此您应该像 tabcontrol 一样实现自己的 tabcontrol,或者将此 mdi 表单转换为 usercontrols ...
      猜你喜欢
      • 1970-01-01
      • 2020-10-12
      • 2020-05-31
      • 1970-01-01
      • 2012-10-04
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      • 2017-03-18
      相关资源
      最近更新 更多