如果PictureBox单击事件

时间:2015-10-05 16:14:53

标签: c#

我正在尝试编写匹配的游戏。我的想法是:

(1)。单击某个pictureBox1时,它将变为不可见

(2)。显示MessageBox,提示“选择另一个方框。”

(3)。最后,我需要编写一个if/else语句,如果单击pictureBox13,它将变为不可见; else,(如果点击了其他pictureBoxMessageBox会提示“再试一次。”两个图片框都变得不可见,但我不知道是什么我做错了:

    // 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)

下有一条红色的波浪线

3 个答案:

答案 0 :(得分:2)

如果每个PictureBox都有一个状态会更好,然后你可以使用Click_Event进行操作。 Microsoft在此处提供了一个关于匹配游戏的综合教程:https://msdn.microsoft.com/en-us/library/dd553235.aspx

答案 1 :(得分:1)

正如其他建议的那样,您可以对所有图片框使用相同的事件处理程序,并将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 ....
}

答案 2 :(得分:0)

您可以为所选框(在此示例中为box1和box2)创建int,这两个框都设置为0,然后创建一个on click事件,将int设置为单击的框。

if(box1 != 0) 
    {
        box2 = 'insert selected box number'
    }
    else
    {
        box1 = 'insert selected box number'
    }

选择了两个框后,integers都可以设置为false,这样您就可以使用switch代替if,这可能会大大缩短代码每对图片都需要单独的if语句。

相关问题