无法从事件中关闭表单

时间:2013-02-11 14:34:25

标签: c# invoke

我的主Form,名为Form1,有一个带有一个事件的类,表明Form1应该被关闭。

当我收到该事件并尝试Close时,我得到了必须使用control.invoke的例外情况。好吧,我用这段代码打电话,我仍然得到同样的例外:

void Prox_OkEvent(object sender, EventArgs e)
{
    if (this.InvokeRequired)
    {
        callControlhandler c = new callControlhandler(CloseForm);
        c.Invoke();
    }
    else Close();
}

private void CloseForm()
{
    try { this.Close(); }
    catch (Exception e) { MessageBox.Show(e.Message); }
}

问题出在哪里?谢谢你的帮助

1 个答案:

答案 0 :(得分:4)

应该针对Invoke本身调用

Form。在这种情况下,它会针对c进行调用。

...试

        if (this.InvokeRequired)
        {
            this.Invoke(new Action(CerrarForm));
        }