Консольный текстовый контроль? - PullRequest
3 голосов
/ 25 июля 2010

Я ищу элемент управления winforms, который может выводить текст, как в окне консоли (вывод добавляется снизу, форматирование цвета и т. Д.) Во многом похоже на окно «output» в большинстве IDE.

Я пытался сделать его сам, но он не работал так, как я хотел, поэтому мне интересно, есть ли какой-то существующий элемент управления там.

Это для проекта с открытым исходным кодом.

Ответы [ 2 ]

1 голос
/ 25 июля 2010

Я написал простой элемент управления. Но он не работает с цветами (происходит от 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
0 голосов
/ 26 июля 2010

А как насчет RichTextBox Control (встроенный)? Или, может быть, вы могли бы использовать ListView, так как это может быть полезно для irc. Особенно ObjectListView дает много возможностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...