Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сравнить строки listbox с временем и закрасить их / 4 сообщений из 4, страница 1 из 1
22.12.2017, 10:14
    #39574254
Александр Маркин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнить строки listbox с временем и закрасить их
Здравствуйте!
---------------
Мне нужно по таймеру,
Сравнить строки ListBox1 с временем (TimeOfDay)
и закрасить строки ListBox1, если они равны времени (TimeOfDay) в зелёный цвет.
--------------------------------------
Подскажите, как это можно сделать.
...
Рейтинг: 0 / 0
22.12.2017, 10:27
    #39574266
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнить строки listbox с временем и закрасить их
Александр Маркин,
А код то где?
...
Рейтинг: 0 / 0
22.12.2017, 14:06
    #39574446
Александр Маркин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнить строки listbox с временем и закрасить их
Этот код мне дали на другом форуме.
Он должен работать. Но тут почему-то возникает исключение.
индекс не проходит в этой строке:
Код: 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
22.12.2017, 17:51
    #39574593
maxim111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнить строки listbox с временем и закрасить их
Александр Маркин,

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


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