【发布时间】:2009-04-12 12:26:29
【问题描述】:
在 C# 中切换表单的最佳方法是什么?
场景:我想单击 Form1 中的按钮,杀死现有的 Form1 并创建 Form2。 我怎样才能做到这一点?
如果有人可以比较 Winforms 与 WPF 中此任务的复杂性,我将不胜感激。
【问题讨论】:
在 C# 中切换表单的最佳方法是什么?
场景:我想单击 Form1 中的按钮,杀死现有的 Form1 并创建 Form2。 我怎样才能做到这一点?
如果有人可以比较 Winforms 与 WPF 中此任务的复杂性,我将不胜感激。
【问题讨论】:
最简单的方法是使用一个控制函数来打开这两个表单。在第一个表单上单击按钮时,将其关闭并移至第二个表单。
using (var form1 = new Form1() ) {
form1.ShowDialog();
}
using (var form2 = new Form2()) {
form2.ShowDialog();
}
WPF 的代码类似。最大的区别是 WPF 窗口(以及几乎所有的类通常)不实现 IDisposable,因此不需要 using 语句。
var win1 = new Window1();
win1.ShowDialog();
var win2 = new Window2();
win2.ShowDialog();
【讨论】:
当然,关闭当前表单、创建新表单的实例并显示它只是一件非常简单的事情吗?以下代码(在您的情况下位于 Click 事件处理程序下)应该在 WinForms 或 WPF 中工作。
this.Close();
(new Form2()).Show();
我可能在这里遗漏了什么吗?
【讨论】: