最完美的解決辦法,不閃爍。思路為:首先將窗體透明度設置為0,這樣窗體在啟動時就不顯示了,然后再調用Hide將窗體隱藏再將其透明度設置為1即可。
其實就設置2個地方就行了。
1:設置窗體透明度為0
2:在load事件里使用委托調用Hide
//注意,這里很重要,使用BeginInvoke調用里面的代碼將會在Load執行完畢后調用否則沒辦法實現因為Load的時候窗體還不顯示,當然你可以用Shown事件 this.BeginInvoke(new Action(() => { this.Hide(); this.Opacity = 1; }));
解釋一下Action,Action是.NET內部提供的一個無返回值、泛型的委托,共有16重載,分別是0個參數~15個參數,在很多情況下都能滿足要求,無需自己重新定義委托。