Сравнить строки listbox с временем и закрасить их

Александр Маркин

Здравствуйте!---------------Мне нужно по таймеру,Сравнить строки ListBox1 с временем (TimeOfDay)и закрасить строки ListBox1, если они равны времени (TimeOfDay) в зелёный цвет.--------------------------------------Подскажите, как это можно сделать.
3 ответа

Александр Маркин

Александр Маркин,А код то где?


Александр Маркин

Этот код мне дали на другом форуме.Он должен работать. Но тут почему-то возникает исключение.индекс не проходит в этой строке:
If ListBox1.Items.Item(e.Index).ToString = TimeOfDay Then
Public Class Form1
 
 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 Timer1.Enabled = True
 End Sub
 
 Private Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ListBox1.DrawItem
 ' Перерисовываем фон всех элементов ListBox. 
 e.DrawBackground()
 
 ' Создаем объект Brush. 
 Dim myBrush As Brush = Brushes.Black
 
 ' Определяем номер текущего элемента 
 If ListBox1.Items.Item(e.Index).ToString = TimeOfDay Then
 myBrush = Brushes.Green
 Else
 myBrush = Brushes.Black
 End If
 
 ' Перерисовываем текст текущего элемента 
 e.Graphics.DrawString(DirectCast(sender, ListBox).Items(e.Index).ToString(), e.Font, myBrush, e.Bounds, StringFormat.GenericDefault)
 
 ' Если ListBox в фокусе, рисуем прямоугольник 
 'вокруг активного элемента. 
 e.DrawFocusRectangle()
 
 
 End Sub
 
 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 ListBox1.DrawMode = DrawMode.OwnerDrawFixed
 Me.************** = True
 Timer1.Enabled = False
 Timer1.Interval = 1000
 End Sub
 
 Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
 ListBox1.Refresh()
 End Sub
End Class


Александр Маркин

Александр Маркин,Добавьте проверку e.index на >=0