我已经使用下面的代码做了一个图片框。
PictureBox[,] pb = new PictureBox[3, 3];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
pb[i,j] = new PictureBox();
pb[i, j].Location = new Point(i * 150 + 100, j * 150 + 100);
pb[i, j].Width = 150;
pb[i, j].Height = 150;
pb[i, j].Visible = true;
pb[i, j].BorderStyle = BorderStyle.FixedSingle;
pb[i, j].BringToFront();
this.Controls.Add(pb[i, j]);
}
}
这段代码是用来创建一个董事会的猜谜游戏,他们猜测哪个框的船舶。我尝试使用的代码
pb[I,j]="N";
它出现了一个错误,所以我想知道是否有可能给一个图片框赋值,或者我是否必须使用2d数组创建一个板。
1条答案
按热度按时间z2acfund1#
您的问题是C#图片框可以存储值吗?
答案是"是的",这是可能的,一种方法是使用LarsTech提到的
PictureBox
的Tag
属性。但是看看你的代码和用例,你可能会从定制PictureBox中受益,它可以以应用程序特定的方式存储"N"或任何其他类型的值。这个最小的例子只有一个自定义属性,但是你可以有很多你想要的。它们可以是你需要的任何类型,并且给定的名称可以自文档化它们的预期用途。
此时,您可以有意义地赋值
pb[I,j].Value="N"
。向主窗体添加一个3x3
TableLayoutPanel
并初始化它:使用
cpb.Value="N"
将中心正方形的值设置为"N"。设置中心正方形的图像:
单击中心正方形。
但点击其他单元格: