2010-10-19 74 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; 
     } 
    } 
相關問題