【问题标题】:How to have a user navigate multiple "screens" within one form/window?如何让用户在一个表单/窗口中导航多个“屏幕”?
【发布时间】:2023-03-28 15:15:01
【问题描述】:

我正在开发一个项目,该项目模拟公司的程序以在 GUI 中执行各种功能(在 VS2010 上使用 C#)。目前大约有 10 种左右不同的表格,每个功能一个(用作菜单、填写各种表格、管理所述表格等)。到目前为止,我们一直在使用以下方面的东西:

Form1 myForm1 = new Form1();
myForm1.Show();

打开新屏幕和

this.Hide();

当完成当前活动的表单时。 (this.Close() 似乎只是关闭了整个程序)

这会导致一些问题,即在单击表单右上角的 X 后进程存在继续运行的问题(我认为这是由于隐藏的表单未正确关闭所致)。我还怀疑,如果用户使用程序内导航而不杀死进程足够长的时间,那么不断生成和隐藏表单最终会占用所有内存。

在野外,我很少看到依赖不断打开新窗口/表单来启用用户导航的程序。诸如安装程序之类的程序通常使用某种事件来使当前显示的内容消失并出现新内容,而无需更改为新的表单/窗口。我该怎么做呢?是否将按钮/文本框/标签全部堆叠在一个屏幕上,但隐藏起来还是我缺少更直观的东西?

【问题讨论】:

  • @User .....这听起来像是一个导航问题。正如您所说,通常网站具有导航机制,例如带有导航链接的标题......左侧导航树。这些类型的策略是否不能满足您的要求?

标签: c# forms user-interface navigation


【解决方案1】:

【讨论】:

    【解决方案2】:

    您可以这样做(但并不总是可行)的方法是为每个屏幕创建一个UserControl。当需要移动到下一个屏幕时,您只需隐藏当前用户控件并显示下一个。因此,例如,如果您有 8 个屏幕,您可以将每个屏幕都变成一个用户控件。

    然后在 MainForm 的 Load 事件中,您最初隐藏除第一个之外的所有内容。当它移动到第二个屏幕时,您隐藏第一个控件并显示第二个,等等

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 2018-12-30
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      相关资源
      最近更新 更多