我目前正试图找到一种方法来改变我的表单上的每个PictureBox具有相同的图像。我已经实现了这一点,但它的混乱,我想知道是否有一个"更干净"的方式来做到这一点(因为我需要在我的项目中动态填充PictureBox数组)。
Dim pbxCollection() As PictureBox = {PictureBox1, PictureBox2, PictureBox3, PictureBox4, PictureBox5, PictureBox6, PictureBox7, PictureBox8, PictureBox9} 'collection of all pictureboxes
For Each pbx In pbxCollection 'iterates through the PictureBox array and changes each value
pbx.Image = My.Resources.<image file name here>
Next
上面的代码做了我想要的,但正如你所看到的,我有9个picturebox。在未来,我将需要有任何数量的picturebox,最多50个,所以这个解决方案将不再工作。
如果有一种方法可以用表单上的每个PictureBox填充一个数组,我将非常感激。
谢谢。
不要使用数组,使用IEnumerable
:
Dim pbxCollection = MyForm.Controls.OfType(Of PictureBox)()
当然这不是递归的,所以如果有一个面板或组框,你想要使用它而不是MyForm
。另外,确保在InitializeComponent()
方法之后运行。
来自评论:
我使用的是
tableLayoutPanel
假设名称为tableLayoutPanel1
,它可能看起来像这样:
Dim pbxCollection = tableLayoutPanel1.Controls.OfType(Of PictureBox)()