2017-07-28 109 views
0

我想連續顯示和隱藏標籤(在for循環中使用sleep)。這是我在做什麼:連續顯示並隱藏Windows窗體中的標籤

for (i = 0; i < 25; i++) 
{ 
     label1.Visible = true; 
     Thread.Sleep(1000); 
     label1.Visible = false; 
     Thread.Sleep(2000); 
} 

但是,上述代碼不能按預期方式工作。我根本看不到標籤。任何想法如何實現這一

+0

什麼是使用'主題的目的。睡眠(1000)'? –

+1

使用'定時器'組件並更改每個滴答的可見性:'label1.Visible =!label1.Visible;' – ASh

回答

1

使用Thread.Sleep凍結的Windows您選擇界面,你必須運行一個分開的胎面或使用定時器,該爲你做 例子:

void blinkLabel() 
    { 
     int blink_times = 25; 

     System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer();    

     timer1.Interval = 1000;//every one second 

     timer1.Tick += new System.EventHandler((s, e) => 
     { 
      if (blink_times >= 0) 
      { 
       label1.Visible = !label1.Visible; 
       blink_times--; 
      } 
      else 
      { 
       timer1.Stop(); 
      } 
     } 
     ); 


     timer1.Start(); 
    } 
+0

對不起,互聯網連接丟失了一段時間。謝謝。請試試看並回復 –

+0

非常感謝。有用!我學到的一點 - 從不在表單的主線程中使用Sleep –