C# 窗體載入完成才顯示
阿新 • • 發佈:2019-01-04
winform 由於做了最小化到任務了,加上放了很多控制元件,所以每次開啟窗體都閃的厲害
百度了下,只有大概說,沒有具體程式碼,所以來貼個,初學水平,來學習下的。
- 主窗體的 屬性 Opacity 設定為0
- 主窗體事件裡的Paint 設定為100,這個解釋是:在控制元件需要重新繪製時發生。
- 實在沒找到“在控制元件需要重新繪製時發生後”的事件,就將就著吧
private void Form1_Paint(object sender, PaintEventArgs e) { OnPaint(); } private void OnPaint() { Thread.Sleep(100);//這個是延時,你試下不同,知道找到最小的數,而且視窗不會閃,要考慮在比較低端機上執行的 Application.DoEvents (); Opacity = 100; }
- 然後在關閉視窗或最小化視窗都加上
Opacity = 0;
private void Form1_FormClosing(object sender, FormClosingEventArgs e)//關閉視窗(最小化工作列)
{
e.Cancel = true;
Hide();
Opacity = 0;
}
- 也可以直接搜尋Hide(); ,然後在下面加一句Opacity = 0;
Hide();<pre name="code" class="csharp" style="color: rgb(51, 51, 51); line-height: 20px;"> Opacity = 0;