2016-11-04 67 views
0

我想把它縮短:This是我想在沒有點擊任何按鈕的情況下實現的。當我更改Form1_LoadForm1_Shown中的opactiy時,該應用程序將不會顯示給用戶,直到我的代碼完成其任務。
那代碼在顯示錶格後減少表格不透明度

for (int i = 0; i < 100; i++) 
{ 
    this.Opacity -= .05; 
    System.Threading.Thread.Sleep(50); 
} 

誰能告訴我如何archieve我的目標是什麼?

+0

嗯,不,那效果應用到閃屏,主窗口打開時不:從

代碼。例如,它的FormClosing事件。在99開始不透明,所以它不會閃爍。你首先需要一個啓動畫面。 –

回答

0
private async void FadeIn(Form o, int interval = 80) 
{ 
    //Object is not fully invisible. Fade it in 
    while (o.Opacity < 1.0) 
    { 
     await Task.Delay(interval); 
     o.Opacity += 0.05; 
    } 
    o.Opacity = 1; //make fully visible  
} 

private async void FadeOut(Form o, int interval = 80) 
{ 
    //Object is fully visible. Fade it out 
    while (o.Opacity > 0.0) 
    { 
     await Task.Delay(interval); 
     o.Opacity -= 0.05; 
    } 
    o.Opacity = 0; //make fully invisible  
} 

這是我在Stackoverflow上找到的。使用這些方法Form1_Load。 這個問題我假設你有什麼你使用的同步方法,它必須完成之前的程序contineus下一段代碼。這就是爲什麼在加載代碼應用程序之前windows沒有顯示給你。當它關閉Better algorithm to fade a winform

+0

你從[這裏]得到了答案(http://stackoverflow.com/questions/12497826/better-algorithm-to-fade-a-winform)。從其他帖子複製時請添加源代碼。 –

+0

它的工作!非常感謝! – KommissarKong