我正在尝试找到有关如何在richtextbox中重新创建控制台的想法。 我发现的第一个想法是重定向同时运行的隐形控制台应用程序的输出。 其次,使用两个文本框,一个用于输出,一个用于输入。
我遇到这两个问题的原因是我不知道应该订阅哪个事件。是的,我整天都在互联网上查看,但我发现最接近的是有人在VB中这样做。所以我的问题:
我绝对希望将richTextBox像运行控制台一样运行。我知道可以做到。我想相信。
答案 0 :(得分:0)
不要搜索术语“控制台”,否则它会引导您输入错误的帖子,它将导致控制台程序,而不是像您正在创建的那样的表单程序。
将输入从文本框重定向到另一个文本框非常容易,首先挂钩到第二个文本框的KeyUp事件,即用户输入的事件。
在那里你可以检查按下的键是否返回,在这种情况下选择文本框的文本,将其附加到第一个文本框的文本并清除第二个文本框中的文本,如下所示:
private void inputTextBox_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return)
{
consoleRichBox.Text += inputTextBox.Text + "\r\n";
inputTextBox.Text = "";
e.Handled = true;
}
}
答案 1 :(得分:0)
这为您提供了cammand提示的输出:
using System.Diagnostics;
private static string CaptureCommandPromptOutput(string command, string argument)
{
ProcessStartInfo info = new ProcessStartInfo(command, argument);
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
info.CreateNoWindow = true;
Process p = new Process();
p.StartInfo = info;
p.Start();
return p.StandardOutput.ReadToEnd();
}
并使用它:
richTextBox1.Text = CaptureCommandPromptOutput("cmd", "dir C:\");