C# 如何创建控制台用户控件
我需要创建一个用户控件“控制台” 我面临着这样的问题:C# 如何创建控制台用户控件,c#,winforms,c#-2.0,C#,Winforms,C# 2.0,我需要创建一个用户控件“控制台” 我面临着这样的问题: 如果我使用文本框,我如何防止删除已招募的命令 如果使用ListBox/ListView,如何选择所有文本 请告诉我如何从控制台执行操作 控制台应能够完成命令(按Tab键),允许选择文本,并防止输入已建立的命令 如果您需要一些“简单”的控制台应用程序:插入命令(我想是某种DSL语言)、查看执行结果以及其他内容,您可以尝试在RichTextBox基础上编程,这也可以为内容提供一些样式 重用一些已经就绪(复杂)的编辑器,例如: 并努力限制这
- 如果我使用文本框,我如何防止删除已招募的命令
- 如果使用ListBox/ListView,如何选择所有文本
问候语
< p>可以考虑从RigTeXBox控件派生,如提格朗建议的。 根据您希望用户能够做什么,您必须在其中加入一些逻辑,以限制用户可以选择和不能选择的内容。(例如,如果您不希望它们选择以前的命令)。您可以通过属性获取他们选择的文本。然后输入自定义逻辑,例如,Ctrl+C将文本复制到变量中您可以考虑使用<代码> MaximumSize <代码>属性,这样旧控制台在控制台变得如此庞大之后会被删除。
Winforms已经有了一种自动完成功能,您可以使用它,也可以简单地保留一个关键字列表,当用户按下选项卡时,填写列表中以他们已经键入的内容开头的第一个单词
要获取命令本身,而不是之前输入的任何文本,您可能需要获取从最后一个换行符到结尾的所有内容。
代码可能如下所示:
String allText = this.richTextBox1.Text; // All the text from the rich text box
Int32 lastIndex = allText.LastIndexOf("\n"); // Find the position of the last newline
String command = allText.Substring(lastIndex + 1); // Substring starting at the character after the last newline
当然,当用户按下RETURN键时,命令将被发送到您的代码并执行。这里是一个开始:
我使用了位图,并将文本渲染到它。这样我就可以完全控制输入和输出