我制作了一种非常基本的脚本语言,并且在我的语言中有一个名为print
的命令 - 换句话说 - print _k
应该以某种方式向用户显示_k
。 />
到目前为止我一直在使用MessageBox.Show
,但我还想为我的语言添加调试器,出于其他原因,我想使用Stream
或类似的东西。
基本上,在主窗体上我想要一个TextBox
或以某种方式连接到Stream
的东西,以及何时(在脚本中,在不同的线程上)print something
被调用它会在我的表单上引发一个事件,该事件会在something
上写下TextBox
。
我曾经通过发送TextBox
对象作为参数来解决这个问题,但我想让它更具动态性(因此我可以通过TexBox
以外的方式读取数据。)
不幸的是,Stream
没有我可以使用的任何事件
也许还有另一种动态的方式?
答案 0 :(得分:1)
这可能会帮助你:
http://saezndaree.wordpress.com/2009/03/29/how-to-redirect-the-consoles-output-to-a-textbox-in-c/
答案 1 :(得分:0)
祝贺您构建脚本语言;我做过一次,这是我工作过的最有趣,最富有成效的事情之一。你提供调试器和使用流而不是字符串或文件的直觉是好的。
很难建议如何处理特定问题因为你没有提供代码,所以我们必须猜测。我通过在所有API中传递Stream
来处理这种情况,并通过将文本框文本转换为MemoryStream
并在脚本引擎中使用StreamReader
来处理文本框。
另外,The Code Project有一个关于创建名为ConScript的脚本语言的优秀系列,其中包含一个包含调试器的IDE。我从那个系列中得到了很多想法。