代码之家  ›  专栏  ›  技术社区  ›  Brian Ortiz

类似控制台的文本控件?

  •  3
  • Brian Ortiz  · 技术社区  · 16 年前

    我正在寻找一个winforms控件,它可以像在控制台窗口中那样输出文本(输出被附加到底部,颜色格式化等等),就像大多数ide中的“output”窗口一样。

    我试着自己做一个,但没有按我想要的方式工作,所以我想知道是否有一些现有的控制。

    这是一个开源项目。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Markos    16 年前

    我写了一个简单的控件。但它不适用于颜色(它是从textWriter派生的,它不支持颜色)。

    internal class TextBoxWriter : TextWriter {
        TextBox _output;
    
        public TextBoxWriter(TextBox output) {
            _output = output;
        }
    
        public override void WriteLine(string value) {
            Write(value + System.Console.Out.NewLine);
        }
    
        public override void Write(string value) {
            if(_output.InvokeRequired) {
                _output.BeginInvoke((Action<string>)Write, value);
            } else {
                _output.AppendText(value);
            }
        }
    
        public override void Write(char value) {
            Write(value.ToString());
        }
    
            public override Encoding Encoding {
                get { return Encoding.UTF8; }
            }
        }
    

    //designer code
    private System.Windows.Forms.TextBox outputTextBox;
    this.outputTextBox = new System.Windows.Forms.TextBox();
    
    //user code
    var _textWriter = new TextBoxWriter();
    System.Console.SetOut(_textWriter);
    Console.WriteLine("hello");   //this will be show in the outputTextBox
    
        2
  •  0
  •   MadBoy    16 年前

    RichTextBox控件(内置)怎么样?或者你可以使用ListView,因为它对irc很有用。尤其是 ObjectListView 提供了很多可能性。