给页面上所有的Edit控件赋值
我的窗体上共有20个Edit控件,他们的名字分别为:Edit1、Edit2、Edit3、……
现在我想通过循环给这20个控件赋值,希望用一个参数i来控制,怎么办?
我是一菜鸟,表嘲笑我。
问题点数:10、回复次数:5Top
1 楼jiandke(jiandke)回复于 2006-03-20 13:24:05 得分 0
问题补充如下:aEditName="Edit"+IntToStr(i);然后给名字是aEditName的Edit控件赋值。Top
2 楼Ring_Pt(已是黄昏独自愁)回复于 2006-03-20 13:24:38 得分 2
for(int i = 0; i < this->ComponentCount; i++)
{
if(this->Components[i]->ClassType() == __classid(TEdit))
{
TEdit *e = (TEdit *)(Components[i]);
e->Text = "test";
}
}Top
3 楼lurel(城市陌生人)回复于 2006-03-20 13:25:16 得分 8
TEdit * edtTmp;
//定义父对象窗体
TWinControl * wctrlParent = dynamic_cast<TWinControl*>(this);
for(int i=1;i<=nGroup;i++)
{
edtTmp = dynamic_cast<TEdit*>(wctrlParent->FindComponent("Edit"+IntToStr(i)));
ediTmp->Text="值";
}Top
4 楼Ring_Pt(已是黄昏独自愁)回复于 2006-03-20 13:26:58 得分 0
在程序里可以去利用控件的Name但不要给控件的Name去赋值,给控件的Name去赋不同的值会出错Top
5 楼jiandke(jiandke)回复于 2006-03-20 13:42:56 得分 0
lurel(城市陌生人) 你的代码敲错一个字母,可以实现了。另:申明了临时的EdtTmp和wctrlParent应该记得释放他们的空间吧?
Ring_Pt(已是黄昏独自愁):你的代码不灵活啊,假如我除了Edit还有别的控件,而且我的Edit控件的名字顺序和申明的顺序是不一样的,岂不是会把值赋错?
结贴先。Top




