Hy!
Я хотел бы отобразить вывод моей системы журналов в виде списка с настраиваемой подсветкой в зависимости от уровня или записи в журнале. (Общее, предупреждение, ошибка, отладка, трассировка)
somelistbox.Items.Add("Starting"); // I would like to drawn this as grey
somelistbox.Items.Add("Error!"); // I would like to drawn this as red
Так что я хотел бы добавить что-то новое, например, typeoflog, но я не знаю, как это сделать.
somelistbox.Items.Add("Error!",Type.Error);
У меня есть этот код, который окрашивает элементы, зависит от номера элемента, но это не то, что я ищу.
private void general_log_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
Brush myBrush = Brushes.Black;
switch (actualLogType)
{
case LogTypes.General:
myBrush = Brushes.Black;
break;
case LogTypes.Warning:
myBrush = Brushes.Orange;
break;
case LogTypes.Error:
myBrush = Brushes.Purple;
break;
case LogTypes.Debug:
myBrush = Brushes.AntiqueWhite;
break;
}
e.Graphics.DrawString(((ListBox)sender).Items[e.Index].ToString(),
e.Font, myBrush, e.Bounds, StringFormat.GenericDefault);
e.DrawFocusRectangle();
}
ОБНОВЛЕНИЕ: Если кто-то все еще изучает это, я бы посоветовал взглянуть на проект NLog. У него есть цветная цель richtextbox.