2017-04-15 42 views
1

我是新來的編程經歷了幾個教程和示例項目,然後開始創建我自己的基於文本的冒險遊戲與一些用戶界面。C#遊戲菜單形式(用戶名,開始,退出)

所以我想要實現與我的項目開始時,當用戶啓動EXE,我想用一個用戶名輸入屏幕與開始和退出按鈕,然後關閉該窗體,啓動一個新的形式,我將放在遊戲的主界面。

因此,當我點擊「開始」按鈕時,它將從文本框中讀取用戶名,將其保存爲字符串,關閉表單並在遊戲主界面中使用名稱屏幕啓動新表單。

我的問題是,我怎樣才能將開始按鈕從下面的代碼鏈接到一個新的窗體,也關閉當前的AUJFM_Login窗體,它也將能夠讀取字符串的用戶名。

我已經嘗試了幾件事,但經過幾次嘗試後,我只是將它與按鈕功能留在了一起。它不是很多,但這裏是它的基礎知識:

問候屏幕將被稱爲AUJFM_Login,主界面將被稱爲AUJFM。

namespace AUJFM 
{ 
    public partial class AUJFM_Login : Form 
    { 
     public AUJFM_Login() 
     { 
      InitializeComponent(); 
     } 

     private void btnStart_Click(object sender, EventArgs e) 
     { 
      string UserName = nameBox.Text; 
     } 

     private void btnExit_Click(object sender, EventArgs e) 
     { 
      Application.Exit(); 
     } 
    } 
+2

你的問題是? –

+0

不清楚你綁定什麼或錯在哪裏。 –

+0

也同意,由於您沒有提出具體問題,因此尚不清楚您期望什麼樣的答案。 – ChristianM

回答

0

您可以嘗試下面的代碼,單擊「開始」按鈕。我添加了一個方法來檢查用戶名,因爲它似乎發送一個無效的用戶名到下一個表單只是浪費時間。您將不得不調整此方法以檢查有效的用戶。希望這是你正在尋找的。

private void btnStart_Click(object sender, EventArgs e) { 
    string userName = nameBox.Text; 
    if (ValidUserName(userName)) { 
    SecondForm nextForm = new SecondForm(userName); 
    nextForm.Show(); 
    this.Hide(); 
    } else { 
    // user name not valid 
    } 
} 

private bool ValidUserName(String userName) { 
    // logic to check if user name is valid 
    return true; 
} 

然後在第二個窗體構造函數中,將簽名更改爲接受用戶名字符串。

public SecondForm(string userName) { 
    InitializeComponent(); 
    textBox1.Text = userName; 
} 
+0

謝謝,這就是我一直在尋找的。 –

0

如果您有主窗口形式(我們稱之爲的MainForm), 你可以這樣做:然後會出現

MainForm mainForm = new MainForm(); 
mainForm.Show(); 

的主窗口。 要關閉登錄表單,你可以做

this.Hide(); 

由於關閉從運行該應用程序會關閉整個應用程序的形式。