2014-12-03 37 views
-1

我仍在编写猜数字游戏。现在我想用另一种方法代替Application.restart();。就我个人而言,我正在考虑将代码放入我的Class 3,然后从那里调用主要的方法。不幸的是,我没有成功这样做。重新启动表格应用程序的自定义类

我的问题是如何写再次的方法,然后在主要调用它?

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

+4

您需要了解C#方法的基础知识。 – SLaks 2014-12-03 19:29:34

+0

关于类,方法的教程以及之后再试一次! – mybirthname 2014-12-03 19:32:34

+0

当然,我已阅读并遵循教程,虽然 – Yannick93 2014-12-03 19:35:11

回答

1

有几个问题和您提供的代码,我会试着打破它给你,从最严重的开始:

  • 的代码创建一个新的表格(var form1 = new Form1();),但从来没有显示它。要做到这一点在Windows窗体的正确方法是有类似如下行,在你的主要方法:

    Application.Run(new Form1()); 
    

我的建议是继this微软的教程,自动为您生成的代码,并检查创建的代码。

  • 您的策略是每次用户想要再次播放时创建一个新窗体。这不建议;首选的方法是将相同的表单重置为初始设置。另外,你不要处理表单;调用相同的方法(again())将在屏幕上产生多种形式。

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

  • 您的again()方法不声明其返回类型。如果不返回任何东西,它的声明更改为:

    public void again() 
    
  • 你放在again()方法在一个名为ExtensionMethods类。 C#类的名称ExtensionMethods通常用于声明static extension methods,我建议重命名类(如果您最终觉得您需要这样的类)。