цикл foreach с именами текстовых полей - PullRequest
0 голосов
/ 18 ноября 2009

как сделать из этого цикл foreach, я хочу изменить только размер текстовых полей, заканчивающихся на txt2

        br1txt2.Size = new Size(27, 20);
        br2txt2.Size = new Size(27, 20);
        br3txt2.Size = new Size(27, 20);
        br4txt2.Size = new Size(27, 20);
        br5txt2.Size = new Size(27, 20);

Ответы [ 3 ]

4 голосов
/ 18 ноября 2009
Size newSize = new Size(27, 20);
foreach (Control c in this.Controls)
{
   if (c is TextBox && c.Name.EndsWith("txt2"))
   {
      c.Size = newSize;
   }
}
0 голосов
/ 18 ноября 2009
TextBox[] tBoxesForSizeChange = new TextBox[2] {br1txt2, br2txt2 };
Size newSize = new Size(27, 20);

foreach(TextBox tBox in tBoxesForSizeChange)
{
   tBox.Size = newSize;
}

Код может не скомпилироваться.
Но я надеюсь, что это даст вам идею строить дальше.

0 голосов
/ 18 ноября 2009

годами не делал никаких форм win, но я думаю, что это может сработать

IEnumerable<TextBox> textBoxes = GetTextBoxes() //Get your textboxes from wherever
Size newSize = new Size(27, 20);
foreach (Control c in textBoxes.Where(c=>c.Name.EndsWith("txt2")))
{
   c.Size = newSize;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...