窗口中有20个button,点击每个button,那个button的背景就变成黑色
请问,是不是要写20个Clik事件,有没有简单的遍历方法

解决方案 »

  1.   

    写一个Click事件,把20个button关联到这个事件,然后用sender判断是哪个button触发的。
      

  2.   

    button1,button2,button3
    form1_load(object sender,evnetargs e)
    {
    button1.click=new eventhandler(btn_Click);
    button2.click=new eventhandler(btn_Click);
    button3.click=new eventhandler(btn_Click);
    }
    btn_Click(object sender,eventargs e)
    {
    button btn=(button)sender;
    btn.backcolor=color.black;
    }
      

  3.   

    如果问题解决了,
    还是把帖子OVER了吧.
      

  4.   


                foreach (Control c in Controls)
                {
                    if (c.GetType() == typeof(Button))
                    {
                        c.Click += new EventHandler(c_Click);
                    }
                }        void c_Click(object sender, EventArgs e)
            {
                Button b = sender as Button;
                b.BackColor = Color.Black;
            }
      

  5.   

    哦winform
    请主动忽略我4楼的答案~~
      

  6.   

    20个button的响应关联到一个事件,可以在vs的button的属性栏的click方法指定事件,然后在事件方法中根据sender确定是那个button.
      

  7.   

    protected Button[] buttons = new Button[20];
    public Form1()
    {
    for (int i = 0; i < 20; i++)
    {
    buttons[i] = new Button();
    this.Controls.Add(buttons[i]);
    buttons[i].Click+=new EventHandler(Button_Click);
    }
    InitializeComponent();
    }private void Button_Click(object sender, EventArgs e)
    {
    Button btn = (Button)sender;
    if (btn != null)
    {
    btn.BackColor = Color.Black;
    }
    }