新手求助!!C#winform 动态生成控件,每次buttin一下,就添加一个Textbox,而且要求TextBox的坐标不同

 我来答
龍过鸡年
2012-09-21 · TA获得超过311个赞
知道小有建树答主
回答量:308
采纳率:100%
帮助的人:370万
展开全部
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);
}
追问
每次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);

// 代码直接敲的,未测试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjlovefrr
2012-09-21 · 超过12用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:27.3万
展开全部
你可以在添加textbox之前添加一个<td>,在<td>里面进行添加textbox
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fdyshlk
2012-09-21
知道答主
回答量:26
采纳率:0%
帮助的人:27.2万
展开全部
TextBox mytextbox = new TextBox();
mytextbox.location = new Point(x,y); X,Y的值自己定义每次怎么变化就好了。
追问
每次Button之后,产生一个TextBox,往里面赋值,当再Button之后,上一个TextBox的坐标下移,新的TextBox坐标在原来第一个TextBox的坐标上。这要怎么实现呢
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IT学习中
2012-09-21 · 超过24用户采纳过TA的回答
知道答主
回答量:157
采纳率:0%
帮助的人:74.7万
展开全部
在button的点击事件中写向的的窗体中的容器里add进一个新的TextBox;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式