【问题标题】:When should a second form in a winform application be populated?何时应填充 winform 应用程序中的第二个表单?
【发布时间】:2013-02-25 16:07:14
【问题描述】:

我正在用 C# 创建一个 Windows 窗体应用程序,我有两个窗体。用户将使用图形的主要表单和另一个表单,其中包含:系列外观选项、轴选项、标签选项等...... 按下“工具”按钮时会出现此表单。从那里我打算让用户根据需要修改他们的图表。我的问题是—— 在第一个表单加载或初始化时填充第二个表单是否更快/更好,或者它是否应该在按下“工具”按钮时这样做。

【问题讨论】:

    标签: c# winforms forms multiple-forms


    【解决方案1】:

    这个问题是关于预加载(尽快加载数据)和延迟加载(在必要时加载数据)之间的区别。我认为这里的决定应该归结为用户体验。如果数据需要一些时间来加载,并且您的用户将经常访问属性窗口,那么我建议立即加载。另一方面,如果加载速度很快,或者这是一个不常见的功能,那么我建议延迟加载。因此,您需要弄清楚用户的期望。但是,如果屏幕数据加载速度很快,那么您何时加载就无关紧要了。

    我还建议您重新考虑您的属性窗口,特别是如果要经常使用它。这种用户界面的范例是将PropertyGrid 嵌入到完成大部分工作的同一应用程序窗口中。想一想 Visual Studio 中的许多示例以及几乎任何 IDE 样式的应用程序。它们往往没有“浮动”属性窗口。范例是您显示当前在 IDE 中选择的任何对象的属性,以便快速轻松地进行修改。单独的工具 |选项范式更适用于修改频率较低且与整个应用程序相关联的应用程序级设置,而不是应用程序管理的特定对象。同样,Visual Studio 是一个很好的例子。

    【讨论】:

    • 哇,谢谢你回答我的问题。真的超出了我的要求,而且非常有帮助。
    【解决方案2】:

    在我看来,当您单击相应的按钮时,最好创建第二个表单的新实例。我认为您应该只在需要时为表单分配内存。

    但是,如果您的表单加载速度很快,那么从用户的角度来看,这无关紧要,只要您在单击按钮之前隐藏第二个表单即可。

    【讨论】:

      【解决方案3】:

      在启动时创建多个表单的可扩展性不是很高。当您有 20-30 个表格时,加载需要很长时间!在需要时创建它们。

      【讨论】:

      • 虽然我同意这种情况,但我认为这一切都归结为需要的特定实例。 OP 是说有一种形式,应该是“两种方式”的情况。
      【解决方案4】:
      // button event in your first form (Form1)
      private void firstButton_Click(object sender, EventArgs e)
      {
          Form2 form2 = new Form2();
          form2.ShowDialog(); // Shows Form2
      }
      

      应该使用,因为您可能根本不需要该按钮。

      【讨论】:

      • 这根本不能回答问题。 OP 没有询问如何打开新表单。
      猜你喜欢
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 2019-02-07
      • 1970-01-01
      • 2019-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多