我仍在努力猜测数字游戏。现在我想使用另一种方法而不是Application.restart();
。就个人而言,我正在考虑将代码放入我的Class 3中,然后从那里调用main中的方法。不幸的是,我没有成功。
我的问题是如何编写again方法然后在main中调用它?
我在Class3中的代码:
namespace WindowsFormsApplication3
{
public class ExtensionMethods
{
public again()
{
Random Generator = new Random();
globalVariableNumber.number = Generator.Next(1, 1000);
var form1 = new Form1();
form1.label2.Text = "Goodluck and have fun!";
form1.BackColor = default(Color);
form1.helpButton.Enabled = true;
form1.buttonGuess.Enabled = true;
form1.label4.Text = "";
return again;
}
}
}
注意我为public again ();
尝试了return again;
无数的事情。{{1}}。这是我决定放弃之前的最新尝试。
答案 0 :(得分:1)
您提供的代码存在一些问题,我会尝试从最严重的代码开始为您分解:
代码正在创建一个新表单(var form1 = new Form1();
),但从未显示过。在Windows窗体中执行此操作的正确方法是在Main方法中使用类似于以下内容的行:
Application.Run(new Form1());
我的建议是关注this Microsoft的教程,该教程会自动为您生成该代码,并检查创建的代码。
您的策略是每次用户想要再次播放时创建一个新表单。不推荐这样做;首选方法是将相同的表单重置为初始设置。此外,您不会处理该表格;调用相同的方法(again()
)将在屏幕上显示多个表单。
您正在从表单外部访问表单成员(例如label4
和label2
)。在Form1.cs
中创建一个成员方法,它将在表单的代码中设置值。
您的again()
方法未声明其返回类型。如果它没有返回任何内容,请将其声明更改为:
public void again()
您将again()
方法放在名为ExtensionMethods
的类中。 C#类的名称ExtensionMethods
通常用于声明static extension methods,我建议重命名该类(如果你最终觉得你需要这样的类)。