InitializeComponent();
                {        
                Button btn1 = new Button();
                this.Controls.Add(btn1);
                btn1.Location = new Point(30 * 1, 30 * 1);
                btn1.Name = "btn" + 1.ToString();
                btn1.Text = 1.ToString();
                //btn.Click += new System.EventHandler(this.btn_Click);
                btn1.Click += new System.EventHandler(this.btn1_Click);
                       
                Button btn2 = new Button();
                this.Controls.Add(btn2);
                btn2.Location = new Point(30 * 2, 30 * 2);
                btn2.Name = "btn" + 2.ToString();
                btn2.Text = 2.ToString();
                //btn.Click += new System.EventHandler(this.btn_Click);
                btn2.Click += new System.EventHandler(this.btn2_Click);
}        private void btn1_Click(object sender, EventArgs e)
        {
            textBox1.Text = "1";
        }
        private void btn2_Click(object sender, EventArgs e)
        {
            textBox1.Text = "2";
        }
问题:能不能用for循环来创建控件和点击事件?
     比如说我要创建100个控件,和100个点击事件,按照我这个方法肯定是不行的.
     
     求指点.

解决方案 »

  1.   

     private void Form1_Load(object sender, EventArgs e)
            {
                this.DoubleBuffered = true;
                Button[] arrButton = new Button[100];
                TextBox[] arrTextBox = new TextBox[100];            for (int i = 0; i < 100; i++)
                {
                    arrButton[i] = new Button();
                    arrButton[i].Top = 30 * i;
                    arrButton[i].Tag = i;
                    arrButton[i].Text = i.ToString();
                    arrButton[i].Name = "btn" + i.ToString();
                    arrButton[i].Click += MyClick;                arrTextBox[i] = new TextBox();
                    arrTextBox[i].Top = 30 * i;
                    arrTextBox[i].Left = 100;
                    arrTextBox[i].Name = "txt" + i.ToString();
                }            this.SuspendLayout();
                Controls.AddRange(arrButton);
                Controls.AddRange(arrTextBox);
                this.ResumeLayout();
            }        private void MyClick(object sender, EventArgs e)
            {
                Button btn = sender as Button;
                TextBox txt = (TextBox)Controls.Find("txt"+btn.Tag.ToString(),false)[0];
                txt.Text = btn.Text;
            }