在表单

时间:2017-05-16 17:32:35

标签: winforms

我有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事件。我怎么可能这样做?

0 个答案:

没有答案