如何将一个值设为图标?

3

我有一个问题。首先,我会展示一下我正在制作的扫雷游戏中的一小段代码。

lbl_grid[mineX, mineY].Text = "*";

现在,这个代码会在我的网格中设置一个地雷,看起来像一个*
我希望的是,lbl_grid[mineX, mineY].Text被赋予一个图标的值。这可行吗?
我认为我可能需要使用一些非文本的东西,因为图标不是文本。

10
听起来基本上你不应该使用"Label"(因为它们设计用于显示文本)……考虑改用"PictureBox"。 - Jon Skeet
你使用哪种GUI界面?Windows Forms吗?那么你可以使用PictureBox.Image - pascalhein
1
你应该使用Image控件并设置Image属性。 - ppetrov
1个回答

1
你说得对,你需要使用除文本以外的其他东西。
一种选择是制作一个PictureBox的2D数组。
int rows = 3;
int cols = 4;

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

for(int r = 0; r < rows; r++)
{
    List<PictureBox> pList = new List<PictureBox>();
    for(int c = 0; c < cols; c++)
    {
        //do any positioning you need to do here
        pList.Add(new PictureBox());
    }
    pictures.Add(pList);
}

然后您可以访问并设置图像源。
pictures[rVal][cVal].Image = Image.FromFile("<file path>");

正如你所说,一种选择是制作一个PictureBox的2D数组,但那不是一个PictureBox的2D数组。PictureBox[,] pictures = new PictureBox[rows,cols]();才是一个2D数组。 - David Yaw
我所说的二维数组是指列表中的列表。我是一个列表人。 - gunr2171

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接