[英]Is the following possible when initiating an if pictureBox clicked event?
[英]If PictureBox Clicked Event
我正在尝试编写匹配游戏。 我的想法是:
(1). 当某个pictureBox1
被点击时,它变得不可见
(2). 出现一个MessageBox
,提示“选择另一个框”。
(3). 最后,我需要pictureBox13
一个if/else
语句,如果点击pictureBox13
,它就会变得不可见; else
,(如果单击另一个图片pictureBox
) MessageBox
提示“再试一次”。 两个图片框都变得不可见,但我不知道我做错了什么:
// Program From Below
private void pictureBox1_Click(object sender, EventArgs e)
{
MessageBox.Show("Now Pick Another Hidden Picture!");
pictureBox1.Visible = false;
if (pictureBox13_Click)
{
MessageBox.Show("Great!");
pictureBox13.Visible = false;
}
else
{
MessageBox.Show("Try Again!");
}
}
if (pictureBox13_Click)
下面有一条红色的波浪线
如果每个 PictureBox 都有一个状态会更好,然后您可以使用 Click_Event 进行操作。 微软在这里有一个匹配游戏的综合教程: https : //msdn.microsoft.com/en-us/library/dd553235.aspx
正如其他人建议的那样,您可以对所有PictureBox
使用相同的事件处理程序,并将sender
为PictureBox
以查看点击了 PB 的内容:
List<string> selectedPictureBoxes;
public MyForm() // ctor
{
selectedPictureBoxes = new List<string>();
foreach(Control c in this.Controls)
if(c is PictureBox) c.Click += pictureBox_Click;
}
private void pictureBox_Click(object sender, EventArgs e)
{
PictureBox _clicked = sender as PictureBox;
if(!selectedPictureBoxes.Contains(_clicked.Name))
selectedPictureBoxes.Add(_clicked.Name);
else ....
}
您可以为选定的框(在本例中为 box1 和 box2)创建一个int
,它们都设置为 0,然后创建一个点击事件,将 int 设置为单击的框。
if(box1 != 0)
{
box2 = 'insert selected box number'
}
else
{
box1 = 'insert selected box number'
}
选择两个框后,两个integers
都可以设置为 false,这允许您使用switch
代替if
, if
每对图片都需要单独的if
语句,则可以大大缩短代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.