新手求助!!C#winform 动态生成控件,每次buttin一下,就添加一个Textbox,而且要求TextBox的坐标不同
4个回答
展开全部
private void button1_Click(object sender, EventArgs e)
{
var l = 0; var t = 0;
foreach (var ctrl in this.Controls)
{
if (ctrl is TextBox)
{
l = (ctrl as TextBox).Left > l ? (ctrl as TextBox).Left : l;
t = (ctrl as TextBox).Bottom > t ? (ctrl as TextBox).Bottom : t;
}
}
var box = new TextBox();
box.Name = string.Format("box_{0}", this.Controls.OfType<TextBox>().Count() + 1);
box.Location = new Point(l + 5, t + 5);
box.Width = 90;
box.GotFocus += (obj, args) => { this.Text = (obj as TextBox).Name; };
this.Controls.Add(box);
}
{
var l = 0; var t = 0;
foreach (var ctrl in this.Controls)
{
if (ctrl is TextBox)
{
l = (ctrl as TextBox).Left > l ? (ctrl as TextBox).Left : l;
t = (ctrl as TextBox).Bottom > t ? (ctrl as TextBox).Bottom : t;
}
}
var box = new TextBox();
box.Name = string.Format("box_{0}", this.Controls.OfType<TextBox>().Count() + 1);
box.Location = new Point(l + 5, t + 5);
box.Width = 90;
box.GotFocus += (obj, args) => { this.Text = (obj as TextBox).Name; };
this.Controls.Add(box);
}
追问
每次Button之后,产生一个TextBox,往里面赋值,当再Button之后,上一个TextBox的坐标下移,新的TextBox坐标在原来第一个TextBox的坐标上。这要怎么实现呢
追答
思路是获取窗口中所有TextBox对象,逐个向下移动 Top += Height + 5,最后在第一个的位置添加一个新的TextBox对象就可以了。
描述一下程序要实现的功能,可能有其它控件能利用控件自身的Insert方法直接实现
var t = -1;
var l = 10; // Left = 10
foreach (var ctrl in this.Controls)
{
if (ctrl is TextBox)
{
t = (t == -1 ? ctrl.Top : t);
t = (t > ctrl.Top ? ctrl.Top : t);
ctrl.Top += ctrl.Height;
}
}
var box = new TextBox();
box.Name = string.Format("box_{0}", this.Controls.OfType().Count() + 1);
box.Location = new Point(l, t + 5);
box.Width = 90;
box.GotFocus += (obj, args) => { this.Text = (obj as TextBox).Name; };
this.Controls.Add(box);
// 代码直接敲的,未测试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以在添加textbox之前添加一个<td>,在<td>里面进行添加textbox
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
TextBox mytextbox = new TextBox();
mytextbox.location = new Point(x,y); X,Y的值自己定义每次怎么变化就好了。
mytextbox.location = new Point(x,y); X,Y的值自己定义每次怎么变化就好了。
追问
每次Button之后,产生一个TextBox,往里面赋值,当再Button之后,上一个TextBox的坐标下移,新的TextBox坐标在原来第一个TextBox的坐标上。这要怎么实现呢
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在button的点击事件中写向的的窗体中的容器里add进一个新的TextBox;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询