C# 方法在我的tic-tac-toe游戏中不起作用

C# 方法在我的tic-tac-toe游戏中不起作用,c#,winforms,C#,Winforms,如果我通过了这个代码,它就会工作 if (textBox1.Text == "1:1" && xOneOne == false && oOneOne == false) { oOneOne = true; xOneOne = false; pictureBox1.Refresh(); } else { MessageBox.Show("Lauks ir aiznjemts xDDDD"); } 但我想创建方法,所以我不需要一遍又一

如果我通过了这个代码,它就会工作

if (textBox1.Text == "1:1" && xOneOne == false && oOneOne == false)
{
    oOneOne = true;
    xOneOne = false;
    pictureBox1.Refresh();
}
else
{
    MessageBox.Show("Lauks ir aiznjemts xDDDD");
}
但我想创建方法,所以我不需要一遍又一遍地复制相同的代码。这个方法不起作用。我想它不会刷新图片盒,因为我没有得到图片

我的方法:

private void Aplis(TextBox textBox, string koordinatas, bool xVertiba, bool oVertiba, PictureBox PictureBox)
{
    if (textBox.Text == koordinatas && xVertiba == false && oVertiba == false)
    {
        oVertiba = true;
        xVertiba = false;
        PictureBox.Refresh();
    }
    else
    {
        MessageBox.Show("Lauks ir aiznjemts xDDDD");
    }
}
我试着这样调用它,而不是我的第一个代码:

Aplis(textBox1, "1:1", xOneOne, oOneOne, pictureBox1);

您正在方法中设置两个布尔值:

oVertiba = true;
xVertiba = false;
它们不设置传入的实际值,只设置方法中的值。您可以将它们作为
ref
传递,这将使您能够更改它们:

private void Aplis( TextBox textBox
                  , string koordinatas
                  , ref bool xVertiba
                  , ref bool oVertiba
                  , PictureBox PictureBox
                  )
{ }
注意:传入值时,也必须使用
ref
关键字


而且,
xVertiba==false
可以简化为
!xVertiba
xVertiba==true
,正如
xVertiba

对对象的命名与其类型不同。可能PictureBox得到了一个正在调用的静态方法刷新,而不是您想要的?(没有,但这可能是一个问题)
xOneOne==false&&oOneOne==false
*眼睛抽搐*