2016-01-21 52 views
0

我有2個窗體,名爲Form1和Form2。以另一種形式更改按鈕的顏色C#

每個窗體都有3個按鈕同名:Button1,Button2和Button3。

我想要的是當Form1中按鈕的每種顏色都改變了,然後Form 2中按鈕的每種顏色也改變了。例如,Form 1中的Button 1是綠色的,因此Form 1中的Button 1也是綠色的。

我該怎麼做?這是我做了什麼,它不工作

Form1中

Form2 form2 = new Form2();  

private void Klik_Click(object sender, EventArgs e) 
    { 
     counter++; 
     if(counter==1) 
     { 
     Button1.BackColor = Color.Red; 
     Button2.BackColor = Color.Red; 
     Button3.BackColor = Color.Red; 
     form2.Button1.BackColor = Color.Red; 
     form2.Button2.BackColor = Color.Red; 
     form2.Button3.BackColor = Color.Red; 
     } 
     if (counter > 1) 
     { 
     Button1.BackColor = Color.Green; 
     Button2.BackColor = Color.Green; 
     Button3.BackColor = Color.Green; 
     form2.Button1.BackColor = Color.Green; 
     form2.Button2.BackColor = Color.Green; 
     form2.Button3.BackColor = Color.Green; 
     counter = 0; 
     } 
    } 

private void StripMenu_Click(object sender, EventArgs e) 
    { 
     form2.Show(); 
    } 
+0

what * exactly * does not work? – ASh

+0

@ASh - 我在Form2中按鈕的顏色沒有改變。你能幫我解決這個問題嗎? –

+1

你如何創建所有表單? – Valentin

回答

3

你可以試試這個:

在窗口2創建一個屬性調用ButtonColor public Color ButtonColor = new Color();

在form2_paint方法加入以下內容

Button1.BackColor = ButtonColor; 
Button2.BackColor = ButtonColor; 
Button3.BackColor = ButtonColor; 

將form1更改爲

Form2 form2 = new Form2();  

private void Klik_Click(object sender, EventArgs e) 
    { 
     counter++; 
     if(counter==1) 
     { 
     Button1.BackColor = Color.Red; 
     Button2.BackColor = Color.Red; 
     Button3.BackColor = Color.Red; 
     form2.ButtonColor = Color.Red; 
     } 
     if (counter > 1) 
     { 
     Button1.BackColor = Color.Green; 
     Button2.BackColor = Color.Green; 
     Button3.BackColor = Color.Green; 
     form2.ButtonColor = Color.Green; 
     counter = 0; 
     } 
     form2.Show(); 
     form2.Refresh(); 
    } 
+0

哇!非常感謝它的作品:) –