Я пытаюсь изменить цвет фона некоторых строк в ListBox
. У меня есть два списка, один из которых имеет имена и отображается в ListBox
. Второй список имеет некоторые значения, аналогичные первому List
. При нажатии на кнопку, я хочу найти ListBox
и второй List
и изменить цвет ListBox
для тех значений, которые появляются в List
. Мой поиск в ListBox
выглядит следующим образом:
for (int i = 0; i < listBox1.Items.Count; i++)
{
for (int j = 0; j < students.Count; j++)
{
if (listBox1.Items[i].ToString().Contains(students[j].ToString()))
{
}
}
}
Но я не знаю, какой метод использовать, чтобы изменить внешний вид строки ListBox
. Кто-нибудь может мне помочь?
** РЕДАКТИРОВАТЬ: **
HI Я написал свой код следующим образом:
private void ListBox1_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
Graphics g = e.Graphics;
Brush myBrush = Brushes.Black;
Brush myBrush2 = Brushes.Red;
g.FillRectangle(new SolidBrush(Color.Silver), e.Bounds);
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush, e.Bounds, StringFormat.GenericDefault);
for (int i = 0; i < listBox1.Items.Count; i++)
{
for (int j = 0; j < existingStudents.Count; j++)
{
if (listBox1.Items[i].ToString().Contains(existingStudents[j]))
{
e.Graphics.DrawString(listBox1.Items[i].ToString(),
e.Font, myBrush2, e.Bounds, StringFormat.GenericDefault);
}
}
}
e.DrawFocusRectangle();
}
Теперь он рисует мои List
в ListBox
, но когда я сначала нажимаю кнопку, красным цветом отображаются только те ученики, которые находятся в List
, а когда я нажимаю ListBox
, он рисует элементы. Я хочу, чтобы он отображал все элементы, а когда я нажимал кнопку, он отображал все элементы и элемент, найденный в List
, красным цветом. Где моя ошибка?