WinForm 啓動時隱藏窗體最簡單有效的辦法是重寫 CreateParams
protected override CreateParams CreateParams { get { base.Visible = false; return base.CreateParams; } }
但是想要再把這個窗體顯示出來, this.Show() 或者 this.Visible = true 都是無能爲力的。
怎麼辦?在 Win32 API 裏面找找看吧,
BOOL ShowWindow(HWND hWnd, int nCmdShow) 這個看上起不錯,但是調用以後窗體仍然不會顯示出來。
再找,
BOOL SetParent(HWND hWndChild, HWND hWndNewParent )
OK,在獲取到 this.Handle 以後調用以下方法,窗體終於顯示出來了
SetParent(this.Handle, 0);
Win32 API 方法聲明以及 P/Invoke 導入不在本文說明範圍。