MessageBox.Show不显示在窗体中

时间:2019-02-25 19:10:05

标签: c# visual-studio winforms

我正在玩井字游戏,我想在用户获胜时显示一个消息框。但是当我测试它并单击button1,button2和button3时,在窗体或控制台上什么也没有发生。我想我将==和=运算符弄混了,但我不确定到底是什么。

这是我当前的代码:

valueObs

2 个答案:

答案 0 :(得分:0)

您的代码不是很优雅,但是可以使用:

 bool buttonisclicked1 = false;
bool buttonisclicked2 = false;
bool buttonisclicked3 = false;



public void button1_Click(object sender, EventArgs e)
{
    Button clickedButton1 = (Button)sender;
    buttonisclicked1 = true;
    clickedButton1.Text = "X";

    Win();
}

public void button2_Click(object sender, EventArgs e)
{
    Button clickedButton2 = (Button)sender;
    buttonisclicked2 = true;
    clickedButton2.Text = "X";
    Win();
}

public void button3_Click(object sender, EventArgs e)
{
    Button clickedButton3 = (Button)sender;
     buttonisclicked3 = true;
    clickedButton3.Text = "X";
    Win();
}

        public void Win()
{
    if (buttonisclicked1 && buttonisclicked2 && buttonisclicked3 == true)
    {
        Console.WriteLine("You won");
        MessageBox.Show("You won!");

    }
}

答案 1 :(得分:0)

您永远不会调用Win()方法。您声明但不使用它。

    bool buttonisclicked1 = false;
    bool buttonisclicked2 = false;
    bool buttonisclicked3 = false;



    public void button1_Click(object sender, EventArgs e)
    {
        Button clickedButton1 = (Button)sender;
        clickedButton1.Text = "X";

        buttonisclicked1 = true;

        Win()
    }

    public void button2_Click(object sender, EventArgs e)
    {
        Button clickedButton2 = (Button)sender;
        clickedButton2.Text = "X";

        buttonisclicked2 = true;

        Win()
    }

    public void button3_Click(object sender, EventArgs e)
    {
        Button clickedButton3 = (Button)sender;
        clickedButton3.Text = "X";

        buttonisclicked3 = True;

        Win()
    }

    public void Win()
    {
        if (buttonisclicked1 && buttonisclicked2 && buttonisclicked3 == true)
        {
            Console.WriteLine("You won");
            MessageBox.Show("You won!");

        }
    }
}

我将Win()放在每个Click Event()中的原因是,尽管单击了按钮的顺序,它仍会每次检查条件。

您不需要使用If语句来检查按钮的.Text属性是否已更改,因为它的设置为始终更改为{{1 }}。如果您有其他条件,并且在{em>内进行了编码,可以将'X'属性更改为其他内容,那么最好使用Click Event声明。否则-没必要。

据我所知-您似乎在.Text语句中使用了If==:)