我有一个由许多按钮(50+)组成的表单,除了后缀编号外,它们都具有相同的名称。 (btn_0
,btn_1
,btn_3
等等。)
我想在一次操作中更改这些按钮的文本。
有没有办法处理数组之类的按钮?
btn_[i].Text = "something"?
也许执行一个字符串?
"btn_{0}.Text=\"something\""
答案 0 :(得分:4)
您需要一次访问每个按钮才能执行此操作。
在这样的循环中执行
foreach(var btn in this.Controls)
{
Button tmpbtn;
try
{
tmpbtn = (Button) btn;
}
catch(InvalidCastException e)
{
//perform required exception handelling if any.
}
if(tmpbtn != null)
{
if(string.Compare(tmpbtn.Name,0,"btn_",0,4) == 0)
{
tmpbtn.Text = "Somthing"; //Place your text here
}
}
}
查看已使用的重载Compare method。
答案 1 :(得分:1)
如果你知道有多少个按钮就可以循环。虽然它并不完美,可能有更聪明的方法来做到这一点,但我不明白为什么我不会工作
答案 2 :(得分:1)
不知道细节,但模式可能就像这样
for each(Control c in this.controls)
{
if(c is Button) //Check the type
{
Button b = c as button;
b.Text="new text";
}
}
或使用excel及其autofil和文本连接功能将其作为一个文本块。例如
btn1.text="hi";
btn2.text="world";
...
答案 3 :(得分:-1)
为什么不使用jquery一次重命名?
jQuery("form :button").attr('value','Saved!')