0

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

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

打开新屏幕和

this.Hide();

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

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

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

4

2 回答 2

0

Have you looked in to using some kind of MDI setup: http://www.codeproject.com/Articles/7571/Creating-MDI-application-using-C-Walkthrough

于 2013-04-12T15:12:57.807 回答
0

The way you can do this (but isn't always feasible) is to make a UserControl for each screen. When its time to move on to the next screen, you simply hide the current user control and show the next one. So if you have 8 screens for example, you make each one into a user control.

Then on your MainForm's Load event, you initially hide all except the first one. When its time to move onto the second screen, you hide the first control and show the second, etc etc

于 2013-04-12T15:13:37.573 回答