ListBox DrawItem-HotLight Staat im OwnerDraw-Modus?
Ich bin mit OwnerDrawFixed
als DrawMode für die benutzerdefinierte ListBox-Steuerelement in meiner WinForms-app.
Ich will, Sie zu streichen, den hintergrund (oder andere Aktion) des ListBoxItem, wenn der Benutzer mit der Maus über die listbox-Element, bei dem MouseMove -...
DrawItemState.HotLight
nie funktioniert, für die ListBox, so Frage ich mich, wie Sie nachahmen, wie Sie um dieses problem zu umgehen.
InformationsquelleAutor Beaver | 2009-08-22
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es dauerte nur zwei Jahre zu finden, die für Sie beantworten, aber hier ist es:
Den DrawItemState.HotLight gilt nur für Inhaber gezeichnete Menüs, nicht die listbox. Für die ListBox, die Sie haben zu verfolgen die Sache selbst:
MouseIndex
Teil des Codes. Für die ComboBox, die DrawItemState.Gewählt ist im wesentlichen die gleiche wie die heißen index. Um zu testen, änderte ich meineFillRectangle
verwenden Sie einen roten Pinsel und Malte jedes Element rot meine Maus wurde überfahren.Diese Lösung wird nur Wiegen Sie Ihr code unten; nur versuchen, diese:
Dieser operation:
e.State And DrawItemState.Selected
überprüft, ob das Element schwebte. Keine Notwendigkeit, eine ganze Packung von code, nur um zu wissen, was Sache ist schwebte.