-1
也許有人可以解釋這種extrange行爲。主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);
}
任何幫助將不勝感激。謝謝。
您沒有發佈最重要的代碼。 [不要重新發明輪子](http://www.hanselman.com/blog/TheWeeklySourceCode31SingleInstanceWinFormsAndMicrosoftVisualBasicdll.aspx)。 –
我沒有重新發明輪子......我使用了一個我發現Googleing的圖書館,類似於您發佈的圖書館....但是,這不是問題所在。請發佈最有用的評論。謝謝 – jstuardo
它內置於.NET Framework中。圖書館?好吧,我猜也沒用。 –