c#怎么动态生成控件?
6个回答
展开全部
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();
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();
展开全部
为什么要动态生成,可以先把控件隐藏,需要的时候在显示。
或则是先把长宽都设为零,需要的时候再改变其大小。。。
或则是先把长宽都设为零,需要的时候再改变其大小。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码如下:
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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
每个控件都有相应的类,先创建实例,然后给属性赋值
TextBox tb = new TextBox(); tb.Text = "值";
TextBox tb = new TextBox(); tb.Text = "值";
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询