2016-11-18 61 views
-1

我有8个图片框,名为p1到p8。通过计算引用C#对象

我想改变其中一个图片框的背景颜色,具体取决于计算结果。

我可以创建一个以字母'p'开头的字符串并将计算出的数字附加到该字符串中。

我正在寻找一个聪明的方式来引用一个图片框与这个字符串(例如“p4”)。我的问题是,这可能吗?

+6

为什么不使用数组或类似的东西? –

+1

而不是按名称搜索使用集合,该集合包含所有图像并通过索引访问它们:'myImages [0] .Colur = ...'。它是什么类型的应用程序? ASP?的WinForms? WPF ...? – HimBromBeere

+0

在WinForms中,你可以通过如下方式访问一个控件:'this.Controls [“p4”]' –

回答

2

如果你真的希望通过像p4一个字符串,它指给他们,然后把他们的字典

var dict = new Dictionary<string,PictureBox>(); 
dict.add("p1",myP1dict); 
dict.add("p2",myP2dict); 
// etc 
dict["p2"].BackgroundColor = newColor; 

更有可能的是,你可以只是把它们放入数组

var arr = new PictureBox[8] 
arr[0] = myPictBox1 
arr[1] = myPictBox2 
//etc 
arr[1].BackgroundColor = newColor; 

并通过索引引用它们。