日期:2014-05-17  浏览次数:21056 次

请问如何在winform中添加仿命令提示符功能?
手头有一个winform程序,其中某个功能模块实现的功能较多,而且有不少的拓展,不可能以listbox、combobox的方式显示在窗体中。
这时想到了使用命令行方式,但是未找到在winform下创建新的console窗口的方法。
之后想到了利用多行textbox模拟(其实这个更合乎本意,因为原本的设想就是将其放在一个tab中),但是如果是只读,则无法捕获用户输入的数据;如果是非只读,那么在用户删除输入内容时原有的内容可能会被误删。
整个程序就这样卡在了这里,求高人解答,最好能嵌套在tabcontrol中,利用第三方控件也是可以的。
(另写一个命令行程序来调用很不实际,初始化参数中有一个byte[256]的数组无法传递,借助临时文件又太繁琐了)

------解决方案--------------------
自己做一个吧,很简单
每次系统输出的时候记录下文本的长度
然后在可能更改文本的相关事件里判断一下插入点或选区的位置
如果处于不应该被更改的内容中就中断掉。

我的F# Interactive就是这么做的。因为要支持彩色输出,所以继承的是RichTextBox。