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] 引用图像的主要内容,如果未能解决你的问题,请参考以下文章

C#表单,调整表单大小后,图像无法超出原始表单大小

Winforms c#从弹出表单更改父表单的背景图像

必须使用 HttpClient C# 上传带有注册表单数据的图像

我的 C# 表单闪烁,我无法修复它。我已经尝试了一切

C# - 透明表单

提交表单时对表单元素的引用为空