C# 游戏菜单表单(用户名、开始、退出)

C# Game Menu Form ( Username, Start, Exit )

我是编程新手,学习了一些教程和示例项目,然后开始使用一些 UI.

创建我自己的基于文本的冒险游戏

所以我想在我的项目开始时实现的是,当用户启动 exe 时,我想用带有开始和退出按钮的用户名输入屏幕来迎接他们,然后关闭该表单,启动我将在游戏的主界面中放置一个新表格。

因此,当我单击 "Start" 按钮时,它会从文本框中读取用户名,将其保存为字符串,关闭表单并启动一个新表单,同时使用名称屏幕游戏主界面。

我的问题是,我如何link从下面的代码开始按钮到一个新的表单,同时关闭当前的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();
      }
  }

如果您有主 window 的表单(我们称它为 MainForm), 你可以这样做:

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

主要 window 将出现。 要关闭登录表单,您可以这样做

this.Hide();

因为关闭运行应用程序的表单将关闭整个应用程序。

您可以尝试使用下面的代码来点击“开始”按钮。我添加了一种方法来检查用户名,因为它似乎将无效的用户名发送到下一个表单只是浪费时间。您将必须调整此方法以检查有效用户。希望这就是您要找的。

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;
}