在C#中切换表单的最佳方法是什么?

时间:2009-04-12 12:26:30

标签: c# wpf winforms

在C#中切换表单的最佳方法是什么?

场景:我想单击Form1中的按钮,终止现有的Form1并创建Form2。 我怎样才能做到这一点?

如果有人甚至可以比较Winforms与WPF中此任务的复杂性,我将非常感激。

2 个答案:

答案 0 :(得分:4)

最简单的方法是使用控制功能打开两个表单。单击第一个表单上的按钮时,将其关闭并移动到第二个表单上。

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();

答案 1 :(得分:1)

当然,关闭当前表单,创建新表单的实例并显示它只是一个非常直接的问题?以下代码(在您的情况下在Click事件处理程序下)应该在WinForms或WPF中工作。

this.Close();
(new Form2()).Show();

我在这里错过了什么吗?