c#怎么动态生成控件?

如题所述

WinForm中,我们想在窗体Form1中动态生成一个位于窗体中间的Button,可以这样做

Button dyBtn = new Button();
//设置文本
dyBtn.Text = "动态生成的Button";
//改变按钮的长和宽
dyBtn.Size = new Size(150,25);
//改变按钮的位置 这里是置于窗体中间
dyBtn.Location = new Point((this.Width-dyBtn.Width)/2,(this.Height-dyBtn.Height)/2);
//注册按钮点击事件
dyBtn.Click += delegate { MessageBox.Show("我是动态生成的哦!"); };
//将按钮加入窗体
this.Controls.Add(dyBtn); //注意:这里的this指的是当前Form的实例
//将Button置于控件顶层
dyBtn.BringToFront();
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-17
为什么要动态生成,可以先把控件隐藏,需要的时候在显示。
或则是先把长宽都设为零,需要的时候再改变其大小。。。
第2个回答  2010-12-17
Button newBtn = new Button();
newBtn.Location = new System.Drawing.Point(128, 110);
newBtn.Name = "newBtn";
newBtn.Size = new System.Drawing.Size(75, 23);
newBtn.Text = "button2";
newBtn.UseVisualStyleBackColor = true;
this.Controls.Add(newBtn);
///清除新生成的Btn
this.Controls.Remove(newBtn);
第3个回答  2015-12-23

代码如下:

private void button1_Click(object sender, EventArgs e)
        {
            TextBox textbox = new TextBox();
            if (list.Count == 0)
            {
                textbox.Location = new Point(20, 20);
                this.Controls.Add(textbox);
                this.ResumeLayout(false);
                list.Add(textbox);
            }
            else
            {
                TextBox a = list.Last<TextBox>();
                int b = a.Location.Y;
                b += 20;
                textbox.Location = new Point(20, b);
                this.Controls.Add(textbox);
                this.ResumeLayout(false);
                list.Add(textbox);
            }
            
        }

    


   

第4个回答  2010-12-17
每个控件都有相应的类,先创建实例,然后给属性赋值
TextBox tb = new TextBox(); tb.Text = "值";本回答被网友采纳
相似回答