也许有人可以解释这种引渡行为。
当我在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);
}
任何帮助将不胜感激。感谢。
答案 0 :(得分:0)
问题是由于启动画面。
在实际关闭启动画面之前,我刚刚将主窗体激活方法设置为。