Ulrich Michalik
Grünschnabel
In dem unten angegebenen Listing setze ich Listboxeinträgen je nach Bedarf und Eigenschaft unterschiedliche Textfarben. Leider passt sich die markierte Zeile nicht der ensprechenden Textfarbe an, so das die markierte Zeile oft ncht lesbar ist.
Gibt es eine möglichkeit die den Markierunghintergrund farblich Zeile für Zeile zu ändern.
protected override void ListBoxDrawItem(System.Windows.Forms.DrawItemEventArgs e)
{
if (e.Index >= 0)
{
if (m_iListboxColored == 1)
{
if (((CEventReport)m_frmDefault.listBox1.Items[e.Index]).ReportType == enmReportType.Error)
{
e.DrawBackground();
e.Graphics.DrawString(((CEventReport)m_frmDefault.listBox1.Items[e.Index]).Reportstring,e.Font,new SolidBrush(System.Drawing.Color.Red),e.Bounds);
}
else if (((CEventReport)m_frmDefault.listBox1.Items[e.Index]).ReportType == enmReportType.OK)
{
e.DrawBackground();
e.Graphics.DrawString(((CEventReport)m_frmDefault.listBox1.Items[e.Index]).Reportstring,e.Font,new SolidBrush(System.Drawing.Color.Green),e.Bounds);
}
else
{
e.DrawBackground();
e.Graphics.DrawString(((CEventReport)m_frmDefault.listBox1.Items[e.Index]).Reportstring,e.Font,new SolidBrush(System.Drawing.Color.DodgerBlue),e.Bounds);
}
}
else
{
if (((CEventReport)m_frmDefault.listBox1.Items[e.Index]).ReportType == enmReportType.Error)
{
e.DrawBackground();
e.Graphics.DrawString(((CEventReport)m_frmDefault.listBox1.Items[e.Index]).Reportstring,e.Font,new SolidBrush(System.Drawing.Color.Red),e.Bounds);
}
else
{
e.DrawBackground();
e.Graphics.DrawString(((CEventReport)m_frmDefault.listBox1.Items[e.Index]).Reportstring,e.Font,new SolidBrush(e.ForeColor),e.Bounds);
}
}
}
}
Gibt es eine möglichkeit die den Markierunghintergrund farblich Zeile für Zeile zu ändern.
protected override void ListBoxDrawItem(System.Windows.Forms.DrawItemEventArgs e)
{
if (e.Index >= 0)
{
if (m_iListboxColored == 1)
{
if (((CEventReport)m_frmDefault.listBox1.Items[e.Index]).ReportType == enmReportType.Error)
{
e.DrawBackground();
e.Graphics.DrawString(((CEventReport)m_frmDefault.listBox1.Items[e.Index]).Reportstring,e.Font,new SolidBrush(System.Drawing.Color.Red),e.Bounds);
}
else if (((CEventReport)m_frmDefault.listBox1.Items[e.Index]).ReportType == enmReportType.OK)
{
e.DrawBackground();
e.Graphics.DrawString(((CEventReport)m_frmDefault.listBox1.Items[e.Index]).Reportstring,e.Font,new SolidBrush(System.Drawing.Color.Green),e.Bounds);
}
else
{
e.DrawBackground();
e.Graphics.DrawString(((CEventReport)m_frmDefault.listBox1.Items[e.Index]).Reportstring,e.Font,new SolidBrush(System.Drawing.Color.DodgerBlue),e.Bounds);
}
}
else
{
if (((CEventReport)m_frmDefault.listBox1.Items[e.Index]).ReportType == enmReportType.Error)
{
e.DrawBackground();
e.Graphics.DrawString(((CEventReport)m_frmDefault.listBox1.Items[e.Index]).Reportstring,e.Font,new SolidBrush(System.Drawing.Color.Red),e.Bounds);
}
else
{
e.DrawBackground();
e.Graphics.DrawString(((CEventReport)m_frmDefault.listBox1.Items[e.Index]).Reportstring,e.Font,new SolidBrush(e.ForeColor),e.Bounds);
}
}
}
}