假设有100个按钮,命名为 Button1, Button2, Button3 ………… ,Button100。
这时我要给实现下面的操作
Button1.Text = 1;
Button2.Text = 2;
Button3.Text = 3;
...
Button100.Text = 100;
这样感觉有点傻瓜,烦琐重复的事应该让计算机来完成才对,我想知道可不可以通过 for 循环来实现,问题是控件的名称用连接字符串的方法连接起来的吗?这样可以吗?
for (int i = 1; i <= 100, i++)
{
// 这里要添加的代码应该怎么写???
}
这时我要给实现下面的操作
Button1.Text = 1;
Button2.Text = 2;
Button3.Text = 3;
...
Button100.Text = 100;
这样感觉有点傻瓜,烦琐重复的事应该让计算机来完成才对,我想知道可不可以通过 for 循环来实现,问题是控件的名称用连接字符串的方法连接起来的吗?这样可以吗?
for (int i = 1; i <= 100, i++)
{
// 这里要添加的代码应该怎么写???
}
public TextBox GetCtrl(string ctlName)
{
FieldInfo fi;
string flag = ctlName;
Type type = this.GetType();
fi = type.GetField(flag);
if( fi == null)
return null;
else
return((TextBox)fi.GetValue(this));
}
注意button要设置成public
有谁能解释一下为什么必须将控件设置为 public 吗?
你不妨看看ReflectionPermission 的资料。
{
// 在此处放置用户代码以初始化页面
Control c = null;
for(int i=1; i<=100; i++)
{
c = this.FindControl("Button" + i.ToString());
if (c != null)
{
if (c.GetType().FullName == "System.Web.UI.WebControls.Button")
{
((Button)c).Text = i.ToString();
}
}
}
}