C# WinForm 多线程中弹出MessageBox阻塞窗口的实现方法

分类:.NET
 标签:C#,多线程,MessageBox,WinForm
   修改 | 阅读(12663)| 评论(0)

前些天写了个程序,为了不造成程序窗口的假死,用了多线程来处理一些事情,完了之后弹出MessageBox提示,但是发现弹出来的MessageBox提示框不在程序窗口的最前端显示,一不小心点到主窗口,弹出框就被挡住了,这并不符合设计要求,于是找了如下方法:

public void ShowMessage(string msg)
{
	this.Invoke(new MessageBoxShow(MessageBoxShow_F), new object[] { msg });
}
delegate void MessageBoxShow(string msg);
void MessageBoxShow_F(string msg)
{
	MessageBox.Show(msg, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}



调用方法很简单:

ShowMessage("弹出提示示例");


这样弹出的提示框就跟是主窗口弹出的一样,阻塞了窗口,要点击后才能对主窗口进行操作。


由此引申出:如果想MessageBox弹出框不阻塞窗口的话,可以用多线程实现。



您的昵称:*
QQ登录(无需注册直接登录可进行回复)
您的邮箱:(填写邮箱,如有回复可进行邮件通知)
验证码:
点击刷新