2014-12-03 42 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,我建議重命名類(如果您最終覺得您需要這樣的類)。

相關問題