主Winforms应用程序窗口出现在后台

时间:2015-09-02 22:36:30

标签: c# .net winforms

也许有人可以解释这种引渡行为。

当我在C#中开发Winforms应用程序然后通过双击exe文件来构建和运行时,主窗口将显示在后台。为了使它前景,我必须点击任务栏图标。

奇怪的是,如果我有第二台显示器,并浏览扩展屏幕内的文件夹,然后双击exe文件,主窗口将显示在主显示器中。

为了完成好奇心,如果我在Visual Studio中运行应用程序,主窗口会立即出现。

这是Program.cs文件中的主要方法:

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        Application.ThreadException += Application_ThreadException;
        AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

        Application.Run(new frmMain());
    }

由于没有其他实例在运行,因此“if”语句不会执行。

要尝试强制窗口显示在其他窗口的前面,我会覆盖WndProc方法,但它不起作用:

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == ControlVisitas.Helpers.SingleInstance.WM_SHOWFIRSTINSTANCE)
        {
            ControlVisitas.Helpers.WinApi.ShowToFront(this.Handle);
        }

        base.WndProc(ref m);
    }

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

问题是由于启动画面。

在实际关闭启动画面之前,我刚刚将主窗体激活方法设置为。