c# - 将对象名称与数字组合

标签 c# syntax

请考虑这是我的第一篇文章,而且我是 C# 的新手

我正在创建一个带有多个图片框的用户控件。这些对象会自动命名为 pictureBox1、pictureBox2、pictureBox3 等。

现在我想通过单击更改关联的图像:

pictureBox1.Image = Properties.Resources.i51; 

到目前为止,一切都很好。但是如何在不为每个事件编写一行的情况下分配编号呢?

pictureBox(1).Image = Properties.Resources.i51;

不起作用,而且很多其他东西也不起作用。

有什么提示吗?非常感谢!

最佳答案

您可以在用户控件上创建图片框列表:

List<PictureBox> boxes = new List<PictureBox>();

现在,在构造函数中初始化图片框后,将它们添加到列表中:

boxes.Add(pictureBox1);
boxes.Add(pictureBox2);
...

现在使其通过公共(public)属性(property)可见:

public List<PictureBox> Boxes
{
    get 
    {
       return this.boxes;
    }
}

现在您可以通过以下方式在类(class)中分配:

Boxes[0].Image = Properties.Resources.i51;
Boxes[1].Image = Properties.Resources.i51;

如果所有内容都发生在同一个类中,则无需创建上述公共(public)属性。

关于c# - 将对象名称与数字组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9478151/

相关文章:

c# - 向下拉列表中的列表添加空白选择项

c# - 在 WinForm C# 上捕获 KeyUp 事件

c# - 我是否应该测试 Main 的 args 数组中值的无效性

c# - Visual Studio(和 C#)存在哪些 C# 重构选项?

c# - gridview 中的 Oracle 数据库表

java - 缩短 Java 代码的语言技巧?

java - 在 Java 中导入默认包中的类的语法是什么?

c - 使 int foo(int bar[][N]) 与 int ** baz 一起工作

java - Java 中的 <E> 语法是什么意思?

haskell - where 绑定(bind)、let 绑定(bind)和单个赋值运算符 (<-) 之间的区别