C# 表单使用 [i] 引用图像
Posted
技术标签:
【中文标题】C# 表单使用 [i] 引用图像【英文标题】:C# Forms reference a image with [i] 【发布时间】:2021-10-31 09:37:13 【问题描述】:我想将图像从一个 imageList 分发到几个图片框。 我不确定如何有效地遍历图片框。 这是我正在想象但无法找到解决方案的内容。 图片框是图片框1-5
pictureBox[i].Image = imageList1.Images[i];
```
ik this will not work as the pictureBox name is a string. But feel this will help show what i am looking to work out.
【问题讨论】:
var pbs = this.Controls.TypeOf<PictureBox>().ToArray()
? -- 免责声明:可能包含拼写错误、坚果痕迹和完全错误,我不对您使用此代码造成或以其他方式伤害的人负责
The pictureBox's are pictureBox1-5
几乎肯定不是真的
@TheGeneral 的 OfType 错字?
@CaiusJard 不错 :)
【参考方案1】:
假设您的所有图片框都直接添加到主窗体(即它们不在面板、组框或类似内容中),您可以按字符串名称索引控件集合。如果您因此有 pictureBox1 到 5 的名称:
(this.Controls[$"pictureBoxi+1"] as PictureBox).Image = imageList1.Images[i];
如果它们在面板中,那么它们将成为该面板控件集合的一部分,而不是主窗体的一部分。如果它们在不同的面板中,那就更令人头疼了。使用下面的代替,为了方便
您也可以将它们添加到类级别数组中,例如构造函数
private PictureBox _pbs;
ctor(...)
InitializeComponent();
_pbs = new [] pictureBox1, pictureBox2, ... pictureBox5 ;
然后使用它..
【讨论】:
没问题!关于如何使用堆栈溢出的快速教程:当有人写出您认为有用或有帮助的答案时,请单击数字上方的向上箭头。当有人写下您最终用来解决问题的答案时,单击灰色勾号将其变为绿色。任何数量的答案都可以标记为有用,包括您勾选的答案,但只能勾选一个答案。解决问题后勾选答案 - 它会改变仪表板上问题的外观,以便人们知道您不是仍在寻找答案以上是关于C# 表单使用 [i] 引用图像的主要内容,如果未能解决你的问题,请参考以下文章