带有文本框名称的foreach循环

时间:2009-11-18 13:45:54

标签: c# foreach

我如何从这个做一个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 个答案:

答案 0 :(得分:4)

Size newSize = new Size(27, 20);
foreach (Control c in this.Controls)
{
   if (c is TextBox && c.Name.EndsWith("txt2"))
   {
      c.Size = newSize;
   }
}

答案 1 :(得分:0)

多年来没有做过任何胜利,但我认为这可能会成功

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

答案 2 :(得分:0)

TextBox[] tBoxesForSizeChange = new TextBox[2] {br1txt2, br2txt2 };
Size newSize = new Size(27, 20);

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

代码可能无法编译 但是,我希望它能让你进一步构建。