0

我正在构建一个基于文本的游戏,并想像往常一样使用表单而不是控制台。所以我开始重建一个控制台——我创建了 2 个文本框,一个作为输出,一个作为输入。

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

编辑:

我想我需要一些方法来等待事件引发而不阻塞 ui 线程。


我很感激任何帮助解决这个问题,
Mylo。

4

2 回答 2

1

要将表单用作控制台,您需要让您的readLine方法等待用户在 TextBox 控件中按 Enter 的事件,这样做不会阻塞您需要使用多线程(硬)或任务(困难,异步编程很容易),这不是一件容易的事,所以我认为最好使用旧的推力System.Console来完成这项工作。

但是,如果您想尝试一下,可以使用一些第三方控件,例如:http: //www.codeproject.com/Articles/9621/ShellControl-A-console-emulation-control,那里代码项目中还有其他人,因此您可能想深入挖掘并找到您喜欢的一个。

编辑

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

do
    await Task.Delay(100)
loop while (ReadingLine)
于 2013-04-22T19:22:16.533 回答
0

我觉得你想太多了,我的朋友。默认情况下,文本框称为 TextBox1。

因此,要捕获文本框中的数据,您可以说:

Dim someIdentifier As String = TextBox1.Text

现在您已经在变量中捕获了数据,就像您使用捕获它时一样

Console.ReadLine()
于 2013-04-23T13:20:56.107 回答