【发布时间】:2014-01-10 05:48:28
【问题描述】:
我有一个程序,它使用图片框有 16 个网格图块,但只使用 5 个图像,其余图块只是一个黑色图像。
我想知道“用户”点击了哪张图片。
我有一个方法叫做 image_Click(object sender, EventArgs e)
我在这个方法中有一个 if 语句,它指出:
if (peckedSquare.BackColor == Color.Black)
{
System.Diagnostics.Debug.WriteLine("Pecked a black square");
return;
}
这会发送一个字符串,让我知道何时单击了黑色方块。
有没有简单的方法可以说:
//伪代码:
if (peckedSquare.ImageName == pigeon1.png)
{
System.Diagnostics.Debug.WriteLine("Pecked Pigeon number 1");
}
我搜索了我的查询,但没有找到任何合适的答案。
//编辑 我刚刚重新阅读了我的代码。 我正在使用随机数将每张图片分配给一个图片框方块。 我有这个随机数作为变量,所以我可以使用该变量来确定点击了哪个图像。 IE。
if (randomNumber == 1)
{
System.Diagnostics.Debug.WriteLine("Pecked Pigeon number 1");
}
或比这更好
pigeonSelected = randomNumber + 1 //as I am using an array to store the images
System.Diagnostics.Debug.WriteLine("Pecked Pigeon Number {0}", pigeonSelected);
【问题讨论】:
-
你不能那样做。图像存在于内存中,无法跟踪它的来源。
-
PictureBox.ImageLocation财产?如果使用了PictureBox.Load:“调用 Load 方法将覆盖 ImageLocation 属性,将 ImageLocation 设置为方法调用中指定的 URL 值。” -
我假设您只是在这里使用 Windows 窗体 PictureBox。您能否保存对图像的引用,然后将“((PictureBox)sender).Image”属性与您隐藏的图像列表进行比较?
-
@drew_w 我正在使用图像列表数组并从该列表中随机选择图像。所以我只能说如果 ((PictureBox)sender).Image == pigeonPics[0] 然后 pigeon1.png 被点击了?
标签: c# picturebox