连接字符串以使Picturebox名称

时间:2012-03-05 11:41:34

标签: c# string

我有很多以这种方式命名的图片盒:PBr1_1,PBr1_2,... PBr1_9

我想制作循环

        for (int i = 0; i < 10; i++)
        {
            if (Textbox.Text[i].ToString() == "1"){ "PBr1_"+"i".Tag = "cb.png";}
        }

所以for i=0 => PBr1_0, i=10 => Pbr1_10.

示例i在文本框中有值:0001011101 - 如果文本框中的值为“1”,那么我想更改图片框标记。

如何自动化此过程,例如使用循环“for”?

4 个答案:

答案 0 :(得分:1)

我认为你的控件在WinForm(这个)上,而那个名字的控件都是图片盒。
如果是这样,那就是----

for (int i = 0; i < 10; i++) 
{ 
    if (Textbox.Text[i].ToString() == "1")
    {
        Control[] c = this.Controls.Find("PBr1_" + i.ToString(), true);
        if(c != null && c.Length > 0) c[0].Tag = "cb.png";
    }
} 

答案 1 :(得分:0)

您可以将图片框放入List<PicutreBox>并遍历列表。

var pictures = new List<PictureBox>();
pictures.Add(pic1);
pictures.Add(pic2);
//...


for (int i = 0; i < 10; i++)
{
     if (Textbox.Text[i].ToString() == "1") 
          pictures[i].Tag = "cb.png";
}

不支持示例中的动态变量名称。

答案 2 :(得分:0)

创建一个包含图片框的数组(或列表),并在for循环中使用它们。

您也可以使用反射,但在我看来,最好不要在这种情况下使用反射。

答案 3 :(得分:0)

如果您使用的是WinForm,则可以使用Control.Find方法按名称查找控件

获得控件后,您可以轻松更改任何属性