2013-02-12 60 views
3

我有一个问题。首先,我会告诉你一个我自己制作的扫雷游戏的小代码片段。现在如何将一个值设置为一个图标?

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

,这样做是它设置在我的网格矿山看起来像一个*

我想要的是为lbl_grid[mineX, mineY].Text分配一个Icon的值。这可能吗?

我相信我可能不得不使用文本以外的东西,因为图标不是文字。

+10

这听起来像基本上你不应该使用'标签'(因为它们被设计为显示文本)......考虑使用'PictureBox'来代替。 – 2013-02-12 18:20:46

+0

你使用什么gui?窗体形式?那么你可以使用'PictureBox.Image'。 – pascalhein 2013-02-12 18:22:18

+1

你应该使用图像控件并设置Image属性 – ppetrov 2013-02-12 18:22:18

回答

1

你是对的,你将不得不使用文本以外的东西。

一个选项是制作一个PictureBox的二维数组。

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>"); 
+0

正如你所说的,一个选项是制作一个PictureBox的二维数组,但这不是一个PictureBox的二维数组。 'PictureBox [,] pictures = new PictureBox [rows,cols]();'是一个2D数组。 – 2013-02-12 21:41:46

+0

由2d数组表示List列表。我是一个名单。 – gunr2171 2013-02-12 21:46:37

相关问题