【发布时间】:2016-10-16 16:06:40
【问题描述】:
我们有一个简单的 Windows 窗体应用程序,它将在 Windows 平板电脑中运行。到目前为止,我们运行良好;我将遇到的问题是从 winform 转移到 winform,以及打开/关闭表单。
目前,它看起来像这样。
以下打开主窗体FormHome:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FormHome());
}
来自FormHome 的点击按钮将打开一个新的表单调用FormInput:
var form = new FormInput();
form.StartPosition = FormStartPosition.CenterParent;
form.ShowDialog();
点击FormInput 将打开另一个表单FormFeedback:
var form = new FormFeedback(patientInputId);
form.StartPosition = FormStartPosition.CenterParent;
form.ShowDialog();
最后,FormFeedback 将打开最后一个最终表单,FormThanks:
var form = new FormThanks();
form.StartPosition = FormStartPosition.CenterParent;
form.ShowDialog();
FormThanks 什么都不做;它只是感谢用户并有一个 关闭 按钮。这意味着这个关闭按钮将关闭FormThanks、FormFeedback、FormInput,所以我将看到的唯一表单是FormHome。
除了关闭winforms,其他一切正常。但是当我看到需要打开/关闭的窗体时,我在想也许使用其他架构而不是常规的 Windows 窗体会更好。
我正在阅读此SO link,有人建议使用 MDI 容器并用面板代替。但我的第一个想法是,我将看到 MDI 容器的 FormBorder,以及子 Form 的 FormBorder。
你的想法是什么?我应该切换到另一种架构还是只是想办法关闭所有这些表单?
谢谢。
【问题讨论】:
-
不,MDI 从来没有让应用程序看起来或感觉更好。只需编写正确的代码,在 ShowDialog() 调用后将 this.DialogResult 属性设置为 DialogResult.OK 即可关闭对话框。
-
谢谢。但是,当我关闭
FormThanks时,如何关闭FormFeedback、FormInput并显示FormHome? -
嗯,它奏效了。我在所有表单中设置了
this.DialogResult = DialogResult.OK;,它似乎有效。
标签: c# forms winforms visual-studio-2010