Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#游戏菜单表单(用户名、开始、退出)_C#_Screen_Adventure - Fatal编程技术网

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

C#游戏菜单表单(用户名、开始、退出),c#,screen,adventure,C#,Screen,Adventure,我是编程新手,通过了一些教程和示例项目,然后开始创建我自己的带有一些UI的基于文本的冒险游戏 因此,我想在项目开始时实现的是,当用户启动exe时,我想用带有开始和退出按钮的用户名输入屏幕欢迎他们,然后关闭该表单,启动一个新表单,我将把它放在游戏的主界面中 因此,当我单击“开始”按钮时,它将从文本框中读取用户名,将其保存为字符串,关闭表单并启动一个新表单,同时使用游戏主界面中的名称屏幕 我的问题是,如何将下面代码中的“开始”按钮链接到新表单,同时关闭当前的AUJFM_登录表单,该表单还可以读取字符

我是编程新手,通过了一些教程和示例项目,然后开始创建我自己的带有一些UI的基于文本的冒险游戏

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

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

我的问题是,如何将下面代码中的“开始”按钮链接到新表单,同时关闭当前的AUJFM_登录表单,该表单还可以读取字符串用户名

我尝试了一些东西,但几次尝试后,我只留下按钮功能。虽然不多,但以下是它的基本原理:

问候屏幕将被称为AUJFM_登录,主界面将被称为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();
      }
  }

如果主窗口有一个表单(我们称之为MainForm), 你可以做:

MainForm mainForm = new MainForm();
mainForm.Show();
然后会出现主窗口。 要关闭登录表单,您可以执行以下操作

this.Hide();

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

如果主窗口有表单(我们称之为MainForm), 你可以做:

MainForm mainForm = new MainForm();
mainForm.Show();
然后会出现主窗口。 要关闭登录表单,您可以执行以下操作

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

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

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

你的问题是什么?不清楚你在搭售什么或出了什么问题。也同意不清楚你希望得到什么样的答案,因为你没有问特定的问题。上面的代码将在执行exe文件时启动。当我点击“btnStart”时,它将读取文本框中输入的用户名,关闭当前表单,创建另一个新表单,该表单还将用户名输入保存到新表单中的变量中。所以我的问题是,我怎么可能做到这一点?我只是猜测,因为不清楚问题到底是什么…但是,如果用户按下“开始”按钮时,您有另一个表单要启动,那么您需要显示下一个表单并将字符串传递给它。类似于:
secondformnextform=newsecondform(userString)nextForm.show()显示第二个表单再次只是猜测。你的问题是什么?不清楚你在搭售什么或出了什么问题。也同意不清楚你希望得到什么样的答案,因为你没有问特定的问题。上面的代码将在执行exe文件时启动。当我点击“btnStart”时,它将读取文本框中输入的用户名,关闭当前表单,创建另一个新表单,该表单还将用户名输入保存到新表单中的变量中。所以我的问题是,我怎么可能做到这一点?我只是猜测,因为不清楚问题到底是什么…但是,如果用户按下“开始”按钮时,您有另一个表单要启动,那么您需要显示下一个表单并将字符串传递给它。类似于:
secondformnextform=newsecondform(userString)nextForm.show()显示第二个表单再次只是猜测。