2016-01-21 51 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

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