C#控件Controls控制属性问题

大家看这段代码是否有错误:
void check()
{
/*
初始化控件部门省略
查数据库类省略,类名Link,公共DataSet 是Link.ds
*/
Link("Select * from 表名");
if(Link.ds.Tables[0].Rows.Count>0)
{
for(int i=0;i<Link.ds.Tables[0].Rows.Count;i++)
{
TextBox tx=(TextBox)Controls["品名"+i.ToString()];
tx=Link.ds.Tables[0].Rows[i]["产品品名"].ToString();
}
}
}
大家一起找一下,哪错了?C#神经一样报错!!TextBox示例还需要New一下吗?消息提示我没new

那你那名叫品名x之类的文本框有没有放在其它容器中(比如panel或者groupbox之类的),如果有,那是不能直接用Controls["品名"+i.ToString()]这种去得到它的。

要确认你可以简单的做个测试
object obj = Controls["品名0"];
TextBox tx=(TextBox)Controls["品名"+i.ToString()]; //在这一行下断点,运行中断后看下上面的obj是不是null追问

有panl里面

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-10
tx不能直接给赋值,应该是tx.Text = Link.ds.Tables[0].Rows[i]["产品品名"].ToString();追问

不是这是我提问时少输了,补充了还没显示

追答

那报错都显示什么了

第2个回答  2013-12-10
tx.Text = Link.ds.Tables[0].Rows[i]["产品品名"].ToString();追问

不是这是我提问时少输了,补充了还没显示

相似回答