1

我有以下代码将表单显示为 ShowDialog()。

static void Main()
{

    DialogResult oDialogResult = oLogin.ShowDialog();

    if (oDialogResult == DialogResult.OK)
    {
       try
       {
           //do something here
       }
       catch (Exception Ex)
       {
            MessageBox.Show(Ex.Message, "IMPORTANT MESSAGE", MessageBoxButtons.OK, MessageBoxIcon.Error);
       }
   }
}

问题是调用 MessageBox.Show 没有在已经显示的 oLogin.ShowDialog() 表单前面(顶部)显示消息框。你知道为什么吗 ?

我尝试更改 MessageBox.Show 以包含所有者表单,如下所示;

MessageBox.Show(oLogin, Ex.Message, "IMPORTANT MESSAGE", MessageBoxButtons.OK, MessageBoxIcon.Error);

但仍然有同样的问题。

4

3 回答 3

0

将 Main() 方法中的代码更改为 Visual Studio 项目模板最初创建的代码:-

Application.EnableVisualStyles(); 
Application.SetCompatibleTextRenderingDefault(false); 
Application.Run(oLogin);

然后,将您的 try/catch 块添加到 oLogin 类上的 FormClosing 事件处理程序

于 2014-07-15T10:26:01.570 回答
0

您粘贴的代码没有按照您的描述进行 - 显示 MessageBox 时,另一个 Dialog 已经关闭 - 所以前面没有要显示的 Dialog。

粘贴您的实际代码或更好地提出您的问题。

于 2014-07-15T09:58:04.223 回答
-1

尝试:

DialogResult oDialogResult = oLogin.ShowDialog(this);
于 2014-07-15T09:43:42.847 回答