我正在开发我的第一个WinForms应用程序...我通常会编写Web应用程序...
今天,我的应用程序发生了一件奇怪的事情。如果我在计算机上运行该应用程序,或者我的同事在他的计算机上运行该应用程序,则我的MessageBox仅对我的应用程序是模态的。这是所需的行为。如果出现消息框,我的用户将需要能够在单独的应用程序中进行手动编辑,并且在消息框中单击“确定”将“取消暂停”我的应用程序并允许他们继续。
今天下午,我们刚刚在两台最终用户的计算机上安装了该应用程序的Beta版,由于某种原因,当我们在他们的两台计算机上运行该应用程序时,消息框将显示在桌面上,除非“确定”,否则其他人将无法获得关注。被点击。此行为导致我的应用程序出现巨大问题。
我不知道在用户的计算机上有什么不同会导致此行为。
我的计算机-Win7 64位,我的同事的计算机-Win7 32位,两个用户的计算机是Win7 32位。所有都安装了.Net Framework 4.5或4.5.1。
有什么建议吗?
更新:
2014.11.17-代码段
DialogResult result = MessageBox.Show("The Style field did not pass validation.
Please manually fix the data then click OK to continue.",
"WARNING", MessageBoxButtons.OK,
MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
最佳答案
如果Hans Passant发布了答案而不是评论,那么我会将他的回答标记为答案。
这是我解决问题的方法:
DialogResult result = MessageBox.Show(t2tWindow, "The Style field did not pass
validation. Please manually fix the data then click OK
to continue.", "WARNING", MessageBoxButtons.OK,
MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
该代码在单独的“实用程序”类中,而不是在表单的背后代码中,因此我必须将
IWin32Window
参数传递给该方法,以便将其传递给Show()
方法。关于c# - MessageBox对桌面是模态的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26981778/