2015-05-14 50 views
-1

我需要一個標籤,每次點擊都做不同的事情。C#標籤在點擊時應該做不同的事情

private void open_Click(object sender, EventArgs e) 
    { 
     for (int i = 0; i < 5; i++) 
     { 
      builder = new StringBuilder(4); 
      builder.Append(zahl1.Text); 
      builder.Append(zahl2.Text); 
      builder.Append(zahl3.Text); 
      builder.Append(zahl4.Text); 

      code = builder.ToString(); 

     } 
     if(code== setCode) 
     { 
      openAndClose.BackColor = Color.DarkGreen; 
      setNewCode.Visible = true; 

     } 
     else 
     { 

     } 

    } 

第一次單擊時,BackColor變綠,可見爲真。 現在,如果再次點擊它,它應該返回到開始位置。 這意味着BackColor應該是紅色的,可見應該是false。 我可以做第二個事件處理程序嗎?

openAndClose.Click += new EventHandler(open_Click); 

感謝

+0

使用布爾數據類型,首先點擊將其設置爲true,然後點擊檢查var是否爲true,然後加載以前的顏色 – Saubar

回答

0

你可以簡單地做到以下幾點:

if(code == setCode) 
{ 
    openAndClose.BackColor = openAndClose.BackColor == Color.DarkGreen ? Color.Red : Color.DarkGreen; 
    setNewCode.Visible = !setNewCode.Visible; 
} 

第一部分切換綠色和紅色,而第二部分之間的顏色切換的能見度。

+0

我總是需要點擊setNewCode兩次才能將其更改爲green.Do你知道它是否來自你的代碼? – aha364636

+0

是第一次點擊代碼== setCode?如果沒有,那麼該代碼將不會按照您的示例運行。所以看看你是否可以調試代碼來看看它的價值。 –

0

你應該能夠得到你想要的東西具有如果標籤已被點擊前手與否它表示一個全球性的領域。

總之,最初設置你的標誌false,做一些像這樣:

EventHandler() 
{ 
    if(!flag) 
    { 
      BackColour = Green 
      Visible = true   
    } 
    else 
    { 
      BackColour = Red 
      Visible = false   
    } 
    flag = !flag 
} 

附加多個事件處理程序每​​次都會簡單地調用多個事件處理程序。

+0

但它應該首先檢查代碼是否正確,如果是正確的,它應該改變顏色,if你再次點擊它應該回到開始,如果應該再次工作。 – aha364636

+0

@ aha364636:在這種情況下,您需要先手動添加這些檢查,然後採取相應措施。 – npinti

0

我認爲你甚至不需要額外的布爾值或檢查。你可以只檢查是否可見然後隱藏,如果不可見讓它出現

相關問題