powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сравнить строки listbox с временем и закрасить их
4 сообщений из 4, страница 1 из 1
Сравнить строки listbox с временем и закрасить их
    #39574254
Александр Маркин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
---------------
Мне нужно по таймеру,
Сравнить строки ListBox1 с временем (TimeOfDay)
и закрасить строки ListBox1, если они равны времени (TimeOfDay) в зелёный цвет.
--------------------------------------
Подскажите, как это можно сделать.
...
Рейтинг: 0 / 0
Сравнить строки listbox с временем и закрасить их
    #39574266
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Маркин,
А код то где?
...
Рейтинг: 0 / 0
Сравнить строки listbox с временем и закрасить их
    #39574446
Александр Маркин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот код мне дали на другом форуме.
Он должен работать. Но тут почему-то возникает исключение.
индекс не проходит в этой строке:
Код: vbnet
1.
If ListBox1.Items.Item(e.Index).ToString = TimeOfDay Then




Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
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.DoubleBuffered = 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
...
Рейтинг: 0 / 0
Сравнить строки listbox с временем и закрасить их
    #39574593
maxim111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр Маркин,

Добавьте проверку e.index на >=0
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сравнить строки listbox с временем и закрасить их
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]