MessageBox.Show over mostized windows form c#

时间:2015-02-21 11:04:58

标签: c# winforms

我正在使用以下代码来处理应用程序启动时的错误。

[STAThread]
static void Main()
{
    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
    Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new NAudioTutorial5());
}

static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
    try
    {
        Exception ex = (Exception)e.ExceptionObject;
        MessageBox.Show("Please contact the developers with "
           + "the following information:\n\n" + ex.Message + ex.StackTrace,
           "Fatal Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
        System.IO.File.AppendAllText("error.log", ex.Message.ToString() + " " + ex.StackTrace.ToString());
    }
    finally
    {
        Application.Exit();
    }
}
在Program.cs文件中

。在主文件中,我有以下代码来最大化窗体。

private void hello_Load(object sender, EventArgs e)
{
    this.TopMost = true;
    //this.FormBorderStyle = FormBorderStyle.None;
    this.WindowState = FormWindowState.Maximized;
}

因此,当它们是应用程序异常时,messageBox会弹出主窗体窗体后面。如何更改我的代码以在Windows窗体前显示messageBox。我试过了

MessageBox.Show(this, "hello");

但是这个关键字不能用于静态方法。他们是否可以解决这个问题。我想在最大化的窗体前面显示messageBox。

1 个答案:

答案 0 :(得分:1)

使用System.Windows.Forms.Form.ActiveForm获取应用程序的当前活动表单。