在一个操作中更改多个按钮的文本

时间:2011-01-18 13:02:30

标签: c# user-interface forms button

我有一个由许多按钮(50+)组成的表单,除了后缀编号外,它们都具有相同的名称。 (btn_0btn_1btn_3等等。)

我想在一次操作中更改这些按钮的文本。

有没有办法处理数组之类的按钮?

btn_[i].Text = "something"? 

也许执行一个字符串?

"btn_{0}.Text=\"something\""

4 个答案:

答案 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!')