[C#] TextBoxTraceListener
От: Хитрик Денис Россия RSDN
Дата: 21.07.06 14:24
Оценка: 65 (4)
Почти дублирую сообщение <b>krasin</b>.

Вот так может выглядеть простейший TraceListener, для вывода сообщений в TextBox.
Оригинальная версия не позволяла писать в лог из потока, отличного от потока формы.

Класс листенера:
public class TextBoxTraceListener : TraceListener
{
    private TextBox textBox;

    public TextBoxTraceListener(TextBox textBox)
    {
        this.textBox = textBox;
    }

    public override void WriteLine(string message)
    {
        string text = string.Format("{0}\r\n", message);

        Write(text);
    }

    private delegate void WriteCallback(string message);

    public override void Write(string message)
    {
        if (textBox.InvokeRequired)
        {
            WriteCallback d = new WriteCallback(Write);
            textBox.Invoke(d, new object[] { message });
        }
        else
        {
            textBox.AppendText(message);
        }
    }
}



В коде формы:
private void Form1_Load(object sender, EventArgs e)
{
    Trace.Listeners.Add(new TextBoxTraceListener(textBox1));
}


Везде, где надо писать логи:
Trace.WriteLine("lala");
Правила нашего с вами форума.
Как правильно задавать вопросы. © 2001 by Eric S. Raymond; перевод: © 2002 Валерий Кравчук.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.