2014-01-09 28 views
0

因此,我一直在控制台上创建文本冒险,但我想移动到Windows窗体,但我卡住了,我喜欢使用switch语句进行文本冒险,所以我只需要放一个控制台...c#在Windows窗体上的文本冒险?

Console.readline(); 

但窗口形式不同,我怎么做到这一点,当我点击按钮时,它复制框中的文本(较小的一个),然后运行一个switch语句? 我试着到处搜索,但我无法找到它,在一个循环中放置一个开关只会冻结程序,并且只是让switch语句跳过它。这里是一个例子...

string choice; 
choice = userInputBox.Text; 

switch (choice) 
{ 

case choice1: 
{ 
//event n stuff 
} 
case choice2: 
{ 
//event n stuff 
} 

} 

但它运行之前,玩家不能输入任何输入。我想要的是程序等待,直到玩家点击确认确认选择,然后运行开关,并让该按钮可用于不同的开关语句。

+1

Windows窗体使用更多的事件驱动系统。就像你在javascript/jquery中所做的那样,你必须定义一个当某个按钮被点击时运行的函数。应用程序不会自动等待用户输入,就像控制台应用程序一样。坦率地说,我会建议在Windows窗体开发上做一些教程,因为它似乎缺少许多关键信息。 – Flater

+1

当你转向新的UI技术时,你真的需要做一个介绍性的教程。响应用户输入是任何合理的winforms教程将教你的第一件事 - **它是高度googelable。** – Gusdor

回答

4

看来你需要使用Button控件。使用工具箱中的设计器将按钮控件添加到窗体。然后双击您的按钮,并写入button_Click事件中的代码

private void button1_Click(object sender, EventArgs e) 
    { 
     string choice; 
     choice = userInputBox.Text; 

     switch (choice) 
     { 

      case choice1: 
       { 
        //event n stuff 
       } 
      case choice2: 
       { 
        //event n stuff 
       } 

     } 
    } 

也来看看这个教程:http://msdn.microsoft.com/en-us/library/dd492173.aspx

+0

我知道如何添加事件,但这使得它是一个使用,每次我按下该按钮它只会做一个事件,即时通讯问,我怎样才能让这个按钮是一个多用途按钮? – user2847354

+0

如果他想让用户点击输入而不是点击一个按钮,他可以使用TextBox的KeyPress事件并检查e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return ... – Hinek

+1

@Hinek或者他可以设置窗体的AcceptButton属性 –

1

看看事件处理程序。将逻辑分配给按钮onClick事件。 用替代品替换这些处理程序。