怎样操作动态添加的控件?

zhangdora 2006-12-11 02:46:27
我有一个dt表,想把其中第一列的所有记录值(文本的)在winform 上动态生成文本框控件,并把这些值分别放在动态生成的各个文本框里。通过下面的循环,本功能已经实现。但是之后如果在winform上修改了某个框里的值,怎么取这个值呢?比如我在循环结束后写string s=this.tb2.Text, C#是不认的,因为在代码里找不到“tb2”这个名字。怎么操作这些连名字都是动态生成的控件呢?


for (int rr=0; rr<dt.Rows.Count; rr++)
{
TextBox tb = new TextBox();
tb.Text =dt.Rows[rr][0].ToString();
tb.Location = new System.Drawing.Point(20,20+rr*30);
tb.Size = new System.Drawing.Size(30, 20);
tb.Name = "tb" + rr.ToString();
this.groupBox1.Controls.Add(tb);

}
...全文
92 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
leonbingo 2006-12-11
  • 打赏
  • 举报
回复
不用数组也可以,你动态的定义textbox的id,然后利用findcontrol(id)来就好了
zhangdora 2006-12-11
  • 打赏
  • 举报
回复
温柔一刀说的方法正确,不过太简单了,不知道怎么做。经过大量查阅资料,总算自己弄出了算法,看样子这20分只能给自己了。
TextBox[] tb = new TextBox[dt4.Rows.Count];
for (int rr=0; rr<dt4.Rows.Count; rr++)
{
tb[rr] = new TextBox();
tb[rr].Text =dt4.Rows[rr][0].ToString();
tb[rr].Location = new System.Drawing.Point(20,20+rr*30);
tb[rr].Size = new System.Drawing.Size(30, 20);
tb[rr].Name = "tb" + rr.ToString();
this.groupBox1.Controls.Add(tb[rr]);
}
wshuangminlg 2006-12-11
  • 打赏
  • 举报
回复
用ID
findControl("id")
zhangdora 2006-12-11
  • 打赏
  • 举报
回复
老大,能不能说详细点?我试过TextBox[] tb创建数组,但是运行的时候不认tb[rr]。到底怎么个弄法?一定结分的!
yuesongboy 2006-12-11
  • 打赏
  • 举报
回复
创建数组

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧