VB.NET在表单应用程序中重新创建console.readline函数

时间:2013-04-22 19:07:48

标签: vb.net winforms console

我正在构建基于文本的游戏,并且考虑使用表单而不是像我通常那样使用控制台。 所以我开始重建一个控制台 - 我创建了两个文本框,一个作为输出,一个作为输入。

执行此操作时出现以下问题: 在控制台应用程序中,您可以在行中使用console.readline() 例如:Dim str as String = console.readline()
现在我需要在表单应用程序中使用此效果,我等待用户按下输入框并输入他写的文本。 例如:我要求输入字符名称,用户必须在输入框中输入,现在我需要以某种方式输入姓名。

修改

  

我想我需要一些方法来等待事件在不阻塞ui线程的情况下提升。

我感谢任何帮助解决这个问题,我的。

2 个答案:

答案 0 :(得分:1)

要将表单用作控制台,您需要使用readLine方法等待用户在TextBox控件中输入事件,以便在不阻止使用多线程的UI线程的情况下执行此操作(硬)或任务(困难,易于使用异步编程),这不是一件容易的事,所以我认为最好使用旧的推力System.Console来完成这项工作。

但是如果你想尝试一下,有一些第三方控件可以这样做,比如这个:http://www.codeproject.com/Articles/9621/ShellControl-A-console-emulation-control,Code Project中还有其他一些,所以你可能想深入挖掘并找到你喜欢的那个。

修改

这是一个小的异步循环,请注意我也使用等待。

do
    await Task.Delay(100)
loop while (ReadingLine)

答案 1 :(得分:0)

我的朋友,我认为你非常推翻这个。默认情况下,文本框称为TextBox1。

因此,要捕获文本框内的数据,请说:

Dim someIdentifier As String = TextBox1.Text

现在你已经在变量中捕获了数据,就像你使用

捕获它一样
Console.ReadLine()