如何将表单上的每个PictureBox加载到数组中?



我目前正试图找到一种方法来改变我的表单上的每个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)()

相关内容

  • 没有找到相关文章

最新更新