2013-01-18 75 views
3

如何在C#中創建一個程序,它執行以下操作: 1.使用按鈕和標籤創建WindowsForm 2.按下按鈕時,標籤應從「False」到「真」或反之亦然C#執行表單中的方法

我希望根據布爾變量的狀態顯示標籤的消息。

bool Light1 = false; 

當我按下按鈕,我想Light1成爲真正的,如果我再次按下它,它應該成爲假。

標籤示出了消息取決於Light1;

我面臨的問題是根據Light1更改標籤。當我按下按鈕被執行的代碼是:

private void button1_Click(object sender, EventArgs e) 
{ 
    if (parametri.Light1 == false) 
    { 
     parametri.Light1 = true; 
    } 
    else 
    { 
     parametri.Light1 = false; 
    } 
} 

parametri是包含一個公共BOOL Light1變量初始化爲假一類。

如果有人能向我解釋我怎樣才能在標籤和Light1變量之間建立連接,我將不勝感激。

+1

如果你剛剛進入C#,你應該學習WPF和MVVM的UI相關的開發。 –

+1

@JordanKaye我認爲當OP沒有太多的C#經驗時,MVVM可能有點太複雜。 – keyboardP

+0

@keyboardP首先以錯誤的方式學習只會讓事情複雜化。更好地做第一次正確的事情。 –

回答

4
private void button1_Click(object sender, EventArgs e) 
{ 
    // No need of IF Statements to reverse a Boolean 
    parametri.Light1 = !parametri.Light1; 
    label1.Text = parametri.Light1.ToString(); 
} 

如果你想在大寫(真,假)的第一個字母,只要做到這一點:

private void button1_Click(object sender, EventArgs e) 
{ 
    // No need of IF Statements to reverse a Boolean 
    parametri.Light1 = !parametri.Light1; 

    Char[] characters = parametri.Light1.ToString().ToCharArray(); 
    characters[0] = Char.ToUpper(characters[0]); 

    label1.Text = new String(characters); 
} 
+0

感謝您的回覆!我有另一個問題: 是否有可能更改button1_Click範圍外的標籤? 說一下: 'if(parametri.Light1 == false) label1.Text =「False」; else label1.Text =「True」;' 這個代碼會放在main的某個地方嗎? –

2

您可以通過Text財產標籤設置的布爾值:

private void button1_Click(object sender, EventArgs e) 
{ 
    // invert the bool value with the not operator. In C# is equals Java "!" 
    parametri.Light1 == !parametri.Light1; 

    // print the bool value in your label. 
    Label1.Text = parametri.Light1.ToString(); 
}