1. 程式人生 > >C# 窗體載入完成才顯示

C# 窗體載入完成才顯示

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;