我有2个表单,并且想要在每个表单上按下按钮来回切换它们。这可以通过打开新表单并关闭当前表单来完成。然而,根据经验,如果新的需要时间来充分展示,那么可能存在没有形式的差距。我正在尝试使用Form.Shown事件来避免这种情况:
private void button1_Click(object sender, EventArgs e)
{
var form2 = new Form2();
var shown = new AutoResetEvent(false);
form2.Shown += (ta, tb) => { shown.Set(); };
form2.Show();
shown.WaitOne();
Close();
}
但是,它在WaitOne语句上死锁。在Click方法完成之后,似乎不会抛出Shown事件。我怎么可能这样做?