2016-06-21 47 views
0

我試圖在C#項目中製作一種「閃爍」類型的效果,我的意思是我希望標籤可以在每個打勾處切換文本。 。我想到了,最簡單的方法是使用計時器事件,在開始按鈕被按下時每更改一次標籤文本。 這是一個WinForm應用如何更改每個tick事件的標籤值C#.NET

但我不知道怎麼每個替

我想我使這個難度比它後應使標籤交換值..

什麼我的代碼現在這樣是它試圖將myLabel1更改爲firstBlinkName; AND secondBlinkName;在同一時間..我想在這之間的一段時間,我真的不知道如何做到這一點。

private void nameBlinkInterval_Tick(object sender, EventArgs e) 
{ 
    var firstBlinkName = nameBlinkFirstName.Text; 
    var secondBlinkName = nameBlinkSecond.Text; 
    myLabel1.text = firstBlinkName; 
    myLabel1.text = secondBlinkName; 
} 

對不起,命名慣例很糟糕!

+0

這是Windows窗體,你正在使用什麼定時器 - 你可以在哪裏設置定時器的代碼顯示在哪裏.. – markmnl

+0

@Nilsson:你想創建一個dyanamically的標籤嗎? –

+0

該對象可以通過編程或xml創建。另外我認爲c#命名約定是將所有變量名的第一個字母大寫爲方法和變量或類型。像'NewFunction(int varThatGoesInFunction)。有一個關於它的MSDN文章。也不確定探礦者在說什麼,它是在客戶端瀏覽器上運行的HTML嗎?否則,如果典型的Windows C#應用程序,他是完全錯誤的。 –

回答

1

我不確定,如果您的要求是在每個勾號的標籤上切換一些文字,如果是這樣,你應該保留一個全局變量,它會增加每個Tick中的值。下面的代碼將幫助您

int tikCount=0; // This will be a global variable 
string firstBlinkName = "some string Here"; 
string secondBlinkName = "Some other string"; 
private void nameBlinkInterval_Tick(object sender, EventArgs e) 
{ 
    labelThatWillBlink = tikCount++ %2 ==0? firstBlinkName:secondBlinkName; 
    // then do something here that will switch the labelThatWillBlink's value to secondBlinkName 

} 
+0

我試過了,它似乎只是將它更改爲firstName,而沒有在正確的時間之後切換到另一個 –

+0

如何檢測文本正在改變? –

2

這將考驗,每一次改變和刷新標籤:

private void nameBlinkInterval_Tick(object sender, EventArgs e) 
{ 
    var firstBlinkName = nameBlinkFirstNameTextBox.Text; 
    var secondBlinkName = nameBlinkSecondTextBox.Text; 

    labelThatWillBlink.Text = labelThatWillBlink.Text == firstBlinkName ? 
           secondBlinkName : firstBlinkName ; 
    labelThatWillBlink.Refresh(); 
} 

注意使用ternary operator的!

0
myLabel1.Text = "firstText"; 

private void nameBlinkInterval_Tick(object sender, EventArgs e) 
{ 
    if(myLabel1.Text == "firstText") 
    { 
     myLabel1.Text = "secondText"; 
    } 
    else 
    { 
     myLabel1.Text = "firstText"; 
    } 
} 

只要檢查標籤是否包含firstText,如果是,請將標籤設置爲secondText。如果標籤不再包含firstText,則第二個Tick會將標籤放回firstText。