2016-03-04 28 views
0

我有一個包含5個標籤的表單。我可以使用1個定時器更改這些標籤的ForeColor嗎?用單個計時器更改標籤的前景色(可以嗎?)

例如,當我想改變的一個標籤的前景色,我必須寫:

Button1.ForeColor = System.Drawing.Color.Red; 

這隻會影響一個形式。我必須爲每個標籤設置1個定時器嗎?如果我有30個標籤,這會變得很麻煩,因爲那樣我必須編寫30個不同的定時器。

另外,計時器啓動時是否有聲音?

+0

1間隔與標籤變色的方法1 –

回答

0

當然,在你的計時器滴答事件(我假設標準的WinForms定時器控制),只是爲所有的標籤顏色:

label1.ForeColor = Color.Red; 
label2.ForeColor = Color.Red; 
label3.ForeColor = Color.Red; 
// etc. 

或者,如果你所有的標籤組件是一個控件的直接後代(例如,您的表單):

foreach(var label in this.Controls.OfType<Label>()) 
    label.ForeColor = Color.Red; 

要播放系統聲音,只需添加:

System.Media.SystemSounds.Asterisk.Play(); 

Asterisk可以BeepExclamation,對於標準的Windows系統聲音(documentationHandQuestion

如果你要玩一個自定義的聲音,你可以使用System.Media.SoundPlayer:定時器

var mySound = new System.Media.SoundPlayer(@"c:\path\to\yoursoundfile.wav"); 
mySound.Play(); 
0
//5 labels 

int i = 0; private void timer1_Tick(object sender, EventArgs e) { switch (i) { case 0: label1.ForeColor = Color.Red; System.Console.Beep(); i++; break; case 1: label2.ForeColor = Color.Yellow; System.Console.Beep(); i++; break; case 2: label3.ForeColor = Color.Blue; System.Console.Beep(); i++; break; case 3: label4.ForeColor = Color.Green; System.Console.Beep(); i++; break; case 4: label5.ForeColor = Color.Pink; System.Console.Beep(); i++; break; } }