2010-10-19 51 views
-1
int a, b; 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     this.Width = 600; 
     this.Height = 436; 

     for (a = 1; a <= 8; a++) 
     { 
      for (b = 1; b <= 8; b++) 
      { 
       Button btn = new Button(); 
       btn.Name = (((a - 1) * 8) + b).ToString(); 
       btn.Width = 50; 
       btn.Height = 50; 
       btn.Left = (b - 1) * 50; 
       btn.Top = (a - 1) * 50; 

       if ((a + b) % 2 == 0) 
        btn.BackColor = Color.WhiteSmoke; 
       else 
        btn.BackColor = Color.Black; 

       btn.Click += new EventHandler(btn_Click); 

       this.Controls.Add(btn); 
      } 
     } 
    } 
    int i, j,y; 
    void btn_Click(object sender, EventArgs e) 
    { 
     Button btn = (Button)sender; 

     if (radioButton1.Checked == true) 
     { 
      i = int.Parse(btn.Name); 
      j = i % 8; 
      for (y = 1; y <= 8; j+=8) 
      { 

      } 
     } 

我该如何更改其他按钮backcolor?c#win应用程序

+0

魔法门想要改写问题,让人们知道你在做什么。 – Dismissile 2010-10-19 18:08:19

+0

任何人都有一个或两个关于变量范围的好链接?我猜这是从.cs文件中删除的...... – 2010-10-19 18:14:13

+0

@ user400065:您似乎已经知道如何通过Control.BackColor属性更改控件的背景颜色。那么,你的问题到底是什么? – 2010-10-19 18:19:29

回答

1

制作一个List<Button>并将新添加的按钮添加到此列表中。然后,您可以取得按钮的指数

+0

SIZtürksünüzgaliba – user400065 2010-10-19 18:12:29

+0

EVET TURKUM :)) – 2010-10-19 18:22:39

+0

笨得çeyrekingilizcemleyarımyamalakbişeysormayaçalışıorum:) – user400065 2010-10-19 18:38:08

0

您需要保留对其他按钮的引用。最好:创建所有按钮,将它们添加到列表中。在事件处理程序中,迭代该列表并设置背景颜色

0

用你的this.Controls参考更改按钮的任何财产在这个列表...不完全是语法正确....但你的想法...

Button btn = (Button)sender; 

    if (radioButton1.Checked == true) 
    { 
     i = int.Parse(btn.Name); 
     j = i % 8; 
     for (y = 1; y <= 8; j+=8) 
     { 
      if(!btn.equals(this.Controls[y])) 
       this.Controls[y].BackColor = Color.Red; 
     } 
    } 
相关问题