Изменить текст для нескольких кнопок за одну операцию - PullRequest
2 голосов
/ 18 января 2011

У меня есть форма, состоящая из множества кнопок (50+), и все они имеют одинаковые имена, за исключением номера суффикса. (btn_0, btn_1, btn_3 и т. Д.)

Я хочу изменить текст этих кнопок за одну операцию.

Есть ли способ обрабатывать кнопки как массивы?

btn_[i].Text = "something"? 

Может быть, выполнить строку?

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

Ответы [ 4 ]

4 голосов
/ 18 января 2011

вам потребуется доступ к каждой кнопке за раз, чтобы сделать это.

Сделайте это в цикле, как это

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
       }
    }
}

Найдите перегруженный метод сравнения используется.

1 голос
/ 18 января 2011

Не знаю особенностей, но шаблон, вероятно, выглядит следующим образом

for each(Control c in this.controls)
{
   if(c is Button) //Check the type
   {
       Button b = c as button;
       b.Text="new text";
    }
}

или используйте Excel с его возможностями автозаполнения и конкатенации текста, чтобы сделать его в виде блока текста.например,

btn1.text="hi";
btn2.text="world";
...
1 голос
/ 18 января 2011

если вы знаете, сколько кнопок вы можете сделать цикл.хотя он не идеален и может быть разумнее сделать это, но я не понимаю, почему я не буду работать

0 голосов
/ 18 января 2011

почему бы не использовать jquery для переименования всего сразу?

jQuery("form :button").attr('value','Saved!')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...