正在获取WinForms中的Console.ReadLine()功能

本文关键字:ReadLine 功能 Console 中的 获取 WinForms | 更新日期: 2023-09-27 18:28:41

我正在使用WinForms编写一个基本的文本游戏;这最初是一个CCD_ 2应用程序。

在我的Player类中,我有一个方法,它当前从Console.ReadLine()读取namecharacterClass,并根据以下参数构建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()类似,因为(目前的情况),我试图调用的方法取决于用户的输入。

  • 有哪些选项可用于在WinForms中用TextBox模拟Console.ReadLine()的功能是否有更适合此任务的其他控件
  • 这种方法是做我想完成的事情的"正确"方式吗?还是用一种完全不同的方法会更好

正在获取WinForms中的Console.ReadLine()功能

Win Forms中,用户交互模式与Console应用程序略有不同。您可以填写多个字段,然后一次提交包含所有值的表单。

在您的情况下,我将使用TextBox控件作为字符名称,使用Console0或RaioButton控件作为字符类。

然后当用户点击提交按钮时,调用CCD_ 22。

此外,您还可以使用验证控件来验证用户输入。