用于重新启动表单应用程序的自定义类

本文关键字:自定义 应用程序 重新启动 表单 用于 | 更新日期: 2023-09-27 18:32:56

我仍在研究我的猜数字游戏。现在我想使用另一种方法而不是Application.restart();.就我个人而言,我正在考虑将代码放在我的类 3 中,然后从那里调用该方法。不幸的是,我没有成功这样做。

我的问题是如何编写 again 方法,然后主要调用它?

我在 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;也是如此。这是我决定放弃之前的最新尝试。

用于重新启动表单应用程序的自定义类

您提出的代码有几个问题,我将尝试为您分解它,从最严重的开始:

  • 代码正在创建一个新的表单(var form1 = new Form1();(,但从未显示它。在 Windows 窗体中执行此操作的正确方法是在 Main 方法中使用类似于以下内容的行:

    Application.Run(new Form1());
    

我的建议是遵循此Microsoft的教程,该教程会自动生成该代码,并检查创建的代码。

  • 您的策略是在用户每次想要再次播放时创建一个新表单。不建议这样做;首选方法是将同一表单重置为初始设置。此外,您不处理表单;调用相同的方法(again()(将导致屏幕上出现多个表单。

  • 您正在从表单本身外部访问表单成员(例如label4label2(。在 Form1.cs 中创建一个成员方法,该方法将从窗体的代码中设置值。

  • again()方法不声明其返回类型。如果它不返回任何内容,请将其声明更改为:

    public void again()
    
  • 您将 again() 方法放在名为 ExtensionMethods 的类中。C# 类的名称 ExtensionMethods 通常用于声明静态扩展方法,我建议重命名该类(如果您最终觉得需要这样的类(。