在消息框关闭并使用作为委托时捕获事件

时间:2012-07-14 21:07:13

标签: c# winforms visual-studio-2010 delegates

以下适用于Windows窗体。

表单关闭时,它只是使用委托重新激活表单上的GroupBorder。

    private void uxUpdateDataButton_Click(object sender, EventArgs e)   
    {
        uxRevisionHelperGroupBox.Enabled = false;
        uxBindingNavigator.Hide();
        uxFormDatabase myNewDisplay = new uxFormDatabase();
        myNewDisplay.FormClosed += delegate { activateGroupBorder(); };
        myNewDisplay.Show();    
    }

    public void activateGroupBorder() 
    {
        uxRevisionHelperGroupBox.Enabled = true;
        uxBindingNavigator.Show();
    }

是否可以执行与上述相同的操作,但是对于消息框而不是子窗体?

这是我的尝试,而不是解决方案:

    private void uxAuthorPictureBox_Click(object sender, EventArgs e)
    { 
        uxRevisionHelperGroupBox.Enabled = false;
        uxBindingNavigator.Hide();
        MessageBox myMessage = new MessageBox;
        myMessage.close += delegate { activateGroupBorder(); };
        myMessage.Show("hello world"); 
    }
    public void activateGroupBorder()
    {
        uxRevisionHelperGroupBox.Enabled = true;
        uxBindingNavigator.Show();
    }     

1 个答案:

答案 0 :(得分:0)

MessageBox.Show(...)是同步调用,即在box关闭之前执行不会继续。为什么不能在消息框完成后拨打您的activateGroupBorder()? E.g:

MessageBox.Show("hello world"); 
this.activateGroupBorder();