如何动态得到控件的值

carven2003 2003-10-12 06:11:44
winform上有textbox控件txt1,txt2,txt3......
想循环得到这些控件的值:
比如这样的形式,
string xx;
for(int i=0;i<3;i++)
{
xx=??("txt"+i).Text; //??这里怎么写?
}

谢谢。
...全文
23 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
skykevin 2003-10-13
  • 打赏
  • 举报
回复
string[] txtName[60],txtValue[60];

foreach(Control ctrl in this.Controls)
{
if(ctrl is TextBox)
for (int i=0;i<60;i++)
{
if (ctrl.Name=="txtName"+i.ToString())
txtName[i]= ctrl.Text;
}

for (int j=0;j<60;j++)
{
if (ctrl.Name=="txtValue"+j.ToString())
txtValue[j]= ctrl.Text;
}

}

carven2003 2003-10-13
  • 打赏
  • 举报
回复
多谢skykevin(蓝屿)和 saucer(思归) 的回答。
saucer的回答解决了我的问题,结贴。
wideroad 2003-10-13
  • 打赏
  • 举报
回复
高手就是高手!
牛!
牛!
牛!
saucer 2003-10-13
  • 打赏
  • 举报
回复
when you create your controls, add them to a hashtable member variable, for example,

class YourForm : Form
{
Hashtable ht = new Hashtable();

//...
txt1 = new TextBox();
ht["txt1"] = txt1;
txt2 = new TextBox();
ht["txt2"] = txt2;
//...

//then

string xx;
for(int i=1;i<=3;i++)
{
xx= ((TextBox)ht["txt"+i.ToString()]).Text;
}


}
carven2003 2003-10-12
  • 打赏
  • 举报
回复
不会吧,没有动态执行那种功能吗?
一共60几个控件 txtName1,txtName2,txtName3.........
txtValue1,txtValue2,txtValue3........
都是textbox控件,要把他们的Text值赋给数组,
那不是很麻烦?
wordinchina 2003-10-12
  • 打赏
  • 举报
回复
只能这样的,通过control取得winform的所有控件组,然后意义判断是否为textbox。因为c#中只提供了这样一个集合
carven2003 2003-10-12
  • 打赏
  • 举报
回复
skykevin(蓝屿)谢谢你的回答。
不过我的问题跟你的回答有些不同。
我不要循环winform里的所有控件,我已经知道这些控件是txt1,txt2,txt3,txt4....


skykevin 2003-10-12
  • 打赏
  • 举报
回复
string xx;
foreach(Control ctrl in this.Controls)
{
if(ctrl is TextBox)
xx= ctrl.Text;
}
yangbc 2003-10-12
  • 打赏
  • 举报
回复
xx="txt"+i.tostring;
xu0007 2003-10-12
  • 打赏
  • 举报
回复
gz

110,534

社区成员

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

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

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