如何在图像变得不可见之前使其对用户可见?

时间:2018-12-05 23:41:33

标签: c# winforms

到目前为止,我正在创建一个与内存匹配的游戏,我设法使卡翻转了,但是我想做的是,当用户单击image1时,它显示图像,然后用户单击image2,此时发生的情况是它们都在显示image2之前变得不可见。重点是先显示image1,然后再显示image2比较它们的标签(如果它们匹配)则它们变得不可见。 有关如何执行此操作的示例将不胜感激。 这是每个图片框的代码,我有12个图片框。

private void picApple_Click(object sender, EventArgs e)
{
  picApple.Image = Properties.Resources.apple;
  if (uncoveredCard1 == null)
  {
    uncoveredCard1 = picApple;
  }
  else if (uncoveredCard1 != null && uncoveredCard2 == null)
  {
    uncoveredCard2 = picApple;
  }
  if (uncoveredCard1 != null && uncoveredCard2 != null)
  {
    if (uncoveredCard1.Tag == uncoveredCard2.Tag)
    {
      uncoveredCard1 = null;
      uncoveredCard2 = null;
      picApple.Visible = false;
      wrdApple.Visible = false;
    }
    else
    {
      showCard.Start();
    }
  }

1 个答案:

答案 0 :(得分:0)

您的条件不正确,是if而不是else if,因此您的第二张卡片得到了图片,然后立即被隐藏了。

尝试一下:

private void picApple_Click(object sender, EventArgs e)
{
  picApple.Image = Properties.Resources.apple;
  if (uncoveredCard1 == null)
  {
    uncoveredCard1 = picApple;
  }
  else if (uncoveredCard1 != null && uncoveredCard2 == null)
  {
    uncoveredCard2 = picApple;
  }
  else if (uncoveredCard1 != null && uncoveredCard2 != null)
  {
    if (uncoveredCard1.Tag == uncoveredCard2.Tag)
    {
      uncoveredCard1 = null;
      uncoveredCard2 = null;
      picApple.Visible = false;
      wrdApple.Visible = false;
    }
    else
    {
      showCard.Start();
    }
}