这应该显示xWinner表格标签的获胜者,但我无法弄明白。 xWinnerForm.Show(b1.Text);.我是c#的新手,所以请你以外行的方式解释谢谢。
static public bool CheckWinner(Button[] myControls)
{
bool gameOver = false;
for (int i = 0; i < 8; i++)
{
int a = Winners[i, 0];
int b = Winners[i, 1];
int c = Winners[i, 2];
Button b1 = myControls[a], b2 = myControls[b], b3 = myControls[c];
if (b1.Text == "" || b2.Text == "" || b3.Text == "")
continue;
if (b1.Text == b2.Text && b2.Text == b3.Text)
{
gameOver = true;
Form xWinnerForm = new xWinnerForm();
xWinnerForm.Show(b1.Text);
}
public void Show(string text)
{
this.xWinnerLabel.Text = text;
this.Show();
}
}
return gameOver;
}
答案 0 :(得分:0)
这是使其发挥作用所需的最小变化:
xWinnerForm xWinnerForm = new xWinnerForm();
虽然除了这个之外我还建议做一些改动:
XWinnerForm xWinnerForm = new XWinnerForm();
Show
。而是更改表单的构造函数以接受额外的数据,或者在表单中添加setter。 XWinnerForm xWinnerForm = new XWinnerForm(b1.Text);
a, b, c, b1
之类的名称: XWinnerForm xWinnerForm = new XWinnerForm(labelWinner.Text);
答案 1 :(得分:0)
目前,变量(xWinnerForm
)的输入为Form
,Form
的{{1}}方法具有不同的签名。相反,告诉它Show
的具体类型 - 也许是Form
(您的班级名称......)。或者使用不同的方法名称(WinnerForm
会引起混淆)。
答案 2 :(得分:0)
Form xWinnerForm = new xWinnerForm();
这一行是你的问题。因为您将变量声明为Form
,所以编译器不知道您的Show(string)
函数。
顺便说一句,使用与其类型相同的变量名称通常是不好的形式。
相反,做这样的事情:
xWinnerForm winner = new xWinnerForm();
winner.Show(b1.Text);