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个点击事件,按照我这个方法肯定是不行的.
求指点.
{
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个点击事件,按照我这个方法肯定是不行的.
求指点.
{
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;
}