在WinForms

时间:2015-12-30 21:17:26

标签: c# .net winforms

我正在使用WinForms编写基本文字游戏;这开始于Console应用。

在我的Player课程中,我有这种方法,目前从name读取characterClassConsole.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(),因为(现在看来),我试图调用的方法取决于来自的输入用户。

  • 在WinForms中使用 Console.ReadLine() 模拟 TextBox 的功能有哪些选项? 是否有更适合此任务的不同控件?
  • 这种方法是我正在尝试完成的事情的“正确”方法,还是我会用完全不同的方法更好?

1 个答案:

答案 0 :(得分:1)

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

在您的情况下,我会使用TextBox控件作为角色名称,并使用ComboBoxRaioButton控件作为角色类。

然后,当用户点击提交按钮时, Player.CreateCharacter(input1, input2); //create the player被称为。{/ p>

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