分享

VC# 线程中 MessageBox.Show 不在最前端(非模式对话框)的解决

 caoyc1989 2014-05-27

线程中调用 MessageBox.Show("千一网络"),结果发现并不是在窗口的前端,也就是说在关闭对话框前,窗口仍然是活动的,可以被点击的。


网上的解决办法


只需要指定 MessageBox.Show 的第一个参数:(IWin32Window)this。


如果信了,就“杯具”了,应该把整个 MessageBox.Show 交回窗口的主线程。


解决办法

public delegate void MessageBoxHandler();

this.Invoke(new MessageBoxHandler(delegate()
{
    MessageBox.Show("千一网络");
    // MessageBox.Show((IWin32Window)this, "提示"); // 由于放在 Invoke 中,也可以这么用,但效果和上面的一样。
}));

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多