我正在使用WinForms
编写基本文字游戏;这开始于Console
应用。
在我的Player
课程中,我有这种方法,目前从name
读取characterClass
和Console.ReadLine()
并从这些参数构建Player
对象:
public static Player CreateCharacter()
{
string name;
string characterClass;
//InputOutput.Write("Please enter your character's name: ");
name = Console.ReadLine();
characterClass = Console.ReadLine(); //SelectClass();
switch (characterClass.ToLower())
{
case "warrior":
return new Player(name, new Warrior());
case "archer":
return new Player(name, new Archer());
case "mage":
return new Player(name, new Mage());
default:
throw new ArgumentException();
}
}
此方法适用于Console
项目,但现在我正在转移到WinForms
我不确定如何从TextBox
获得类似的功能。
我正在尝试构建类似于以下内容的方法:
public void StartNewGame()
{
AddTextToOutputBox("To begin, please enter a name for your character: ");
GetInputFromTextbox(input1); //wait for input from textbox
AddTextToOutputBox("Now, enter a class. [Warrior], [Archer], or [Mage]:");
GetInputFromTextbox(input2); //wait for input from textbox
Player.CreateCharacter(input1, input2); //create the player
}
我向OutputBox
输出消息,等待来自InputBox
的输入,并从这些参数中创建Player
。
我不确定如何继续这里,但我希望功能类似于Console.ReadLine()
,因为(现在看来),我试图调用的方法取决于来自的输入用户。
Console.ReadLine()
模拟 TextBox
的功能有哪些选项? 是否有更适合此任务的不同控件? 答案 0 :(得分:1)
在Win Forms
用户互动范例与Console
个应用略有不同。
您可以填写许多字段,然后一次提交包含所有值的表单。
在您的情况下,我会使用TextBox
控件作为角色名称,并使用ComboBox
或RaioButton
控件作为角色类。
然后,当用户点击提交按钮时,
Player.CreateCharacter(input1, input2); //create the player
被称为。{/ p>
此外,您可以使用验证控件来验证用户输入。