У меня есть собственный элемент управления списком, который показывает пользователю список уведомлений. По сути, когда приходит новое уведомление, новая запись добавляется в список, выделенный жирным шрифтом. Когда пользователь читает уведомление, оно превращается в обычный шрифт.
Единственный способ, которым я мог решить, как добиться этого, вероятно (статуса чтения), - это использовать флажки. Таким образом, в новом уведомлении будет отмечен его элемент, и когда оно будет прочитано, оно будет снято. Это работает хорошо и, кажется, достигает того, что мне нужно.
Однако мой вопрос: есть ли способ удалить рисунок флажков, но при этом сохранить функциональность в фоновом режиме. Так, например, не рисовать флажок для элемента списка, но при этом иметь возможность использовать ListView.Checkboxes = True и ListViewItem.Checked = True?
Мой элемент управления ListView отрисовывается владельцем, и код для моего события DrawItem выглядит так:
Protected Overrides Sub OnDrawItem(e As DrawListViewItemEventArgs)
Try
If Not (e.State And ListViewItemStates.Selected) = 0 Then
'Draw the background for a selected item.
e.Graphics.FillRectangle(System.Drawing.SystemBrushes.Highlight, e.Bounds)
e.DrawFocusRectangle()
Else
'Draw the background for an unselected item.
e.Graphics.FillRectangle(System.Drawing.SystemBrushes.Control, e.Bounds)
End If
e.DrawBackground()
e.DrawDefault = True
MyBase.OnDrawItem(e)
Catch ex As Exception
MsgBox("Exception Error: " & ex.Message, MsgBoxStyle.Critical, "Module: lsvOverdueCalls_DrawItem()")
End Try
End Sub
Если я удалю e.DrawDefault = True
, он удалит флажки, но тогда я не смогу управлять полужирным шрифтом для нового уведомления.
Любая помощь приветствуется. Спасибо
Read
(илиNew
), вы можете выделить его жирным шрифтом или нет (если заголовок столбца отсутствует, элемент не будет отображаться пользователю). - person Ňɏssa Pøngjǣrdenlarp   schedule 26.04.2014