转载:
http://www.hejingzong.cn/blog/viewBlog_58.aspx
前些天写了个程序,为了不造成程序窗口的假死,用了多线程来处理一些事情,完了之后弹出MessageBox提示,但是发现弹出来的MessageBox提示框不在程序窗口的最前端显示,一不小心点到主窗口,弹出框就被挡住了,这并不符合设计要求,于是找了如下方法:
前些天写了个程序,为了不造成程序窗口的假死,用了多线程来处理一些事情,完了之后弹出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);
}
本文介绍了一种在多线程环境下确保MessageBox始终处于应用程序窗口前端的方法。通过使用Invoke结合委托,可以实现在主线程中显示对话框,避免被其他窗口遮挡。
4980

被折叠的 条评论
为什么被折叠?



