在面板中动态添加按钮和按钮对象

时间:2013-10-18 11:03:47

标签: c#

private void button1_Click(object sender, EventArgs e)
{
    string a = textBox1.Text;
    int h = Convert.ToInt32(a);

    for (int i = 0; i <= h; i++)
    {
       buttonArray[i] = new Button();
       buttonArray[i].Size = new Size(60, 23);
       buttonArray[i].Location = new Point(40,20);
        panel1.Controls.Add(buttonArray[i]);
    }
}

我的任务是用户在文本框中输入3。应该动态创建3个按钮并添加到面板中如何做到这一点??????我正在使用按钮阵列请建议我

3 个答案:

答案 0 :(得分:0)

例如,你可以使用它。

    private void button1_Click(object sender, EventArgs e)
    {
        panel1.Controls.Clear();
        string a = textBox1.Text;
        int h = Convert.ToInt32(a);

        for (int i = 0; i <= h; i++)
        { 
            var btn = new Button {Size = new Size(60, 23), Dock=DockStyle.Left, Text=h.ToString() };
            btn.Click+= delegate(object sender, EventArgs e)  { //your commands }; 
            panel1.Controls.Add(btn);
        }
    }

答案 1 :(得分:0)

this post中已经回答了类似的问题:

private void button1_Click(object sender, EventArgs e)
    {
        string a = textBox1.Text;
        int h = Convert.ToInt32(a);

        for (int i = 0; i <= h; i++)
        {
            var b = new Button { Size = new Size(60, 23), Location = new Point(4 + i * 57, 20), Text = string.Format("button{0}", i) };
            b.Click += b_Click;
            panel1.Controls.Add(b);
        }
    }

    void b_Click(object sender, EventArgs e)
    {
        throw new NotImplementedException();
    }

希望测试验证器始终是一个数字

   string a = textBox1.Text;

答案 2 :(得分:0)

可能会使用List更加适合吗?

List<Button>Buttons=new List<Buttons>();

private void button1_Click(object sender, EventArgs e)
{
   Buttons.Clear();
   string a = textBox1.Text;
   //here should be checking if "a" is digit and is not empty
    int h = Convert.ToInt32(a);

    for (int i = 0; i <= h; i++)
    {
      Button btn=new Button();
      btn.Parent=panel1;
      btn.Size=new Size(60, 23);
      btn.Location = new Point(40,5+25*i); //arrange verically
      btn.Text = "Button "+i.ToString();
      btn.Click+=btn_Click;   
      btn.Tag="Some Value you want to restore after button click";

      Buttons.Add(btn)
    }
}