IronPython |将输出重定向到文本框

问题描述 投票:0回答:1

好吧,假设我正在用C#中的IronPython执行脚本:

ScriptEngine engine = Python.CreateEngine();
string Script = textBox1.Text();
engine.Execute(Script);

现在让我们说脚本是:

print("Hello")

VS控制台中的输出:您好我在这里想要实现的是将输出重定向到C#中的TextBox。我尝试了以下无效的方法:

class TextBoxWriter : TextWriter
{
    private RichTextBox _textBox;

    public TextBoxWriter(RichTextBox textbox)
    {
        _textBox = textbox;
    }

    public override void Write(char value)
    {
        base.Write(value);
        _textBox.AppendText(value.ToString());
    }

    public override System.Text.Encoding Encoding
    {
        get { return System.Text.Encoding.UTF8; }
    }
}

Form1_Load:

engine.Runtime.IO.RedirectToConsole();
TextWriter _writer = TextWriter.Synchronized(new TextBoxWriter(textBox1));
Console.SetOut(_writer);
python c# output ironpython
1个回答
0
投票
Console.SetOut(new TextBoxWriter(this.OutputTextBox)); 
© www.soinside.com 2019 - 2024. All rights reserved.