J'utilise un événement DrawItem et MeasureItem pour peindre une zone de liste déroulante avec un DrawMode de OwnerDrawVariable. Fondamentalement, j'essaie d'avoir l'utilisateur en surbrillance une sélection avec la souris, puis appuyez sur la barre d'espace pour basculer l'état de sauvegarde d'une liste de chansons. Puis j'appelle l'événement Me.Refresh() pour le formulaire dans une tentative de redessiner le formulaire et le ComboBox. Le problème que je rencontre est que seul le Combobox lui-même (pas la zone déroulante) qui est un contrôle sur le formulaire principal est en train de redessiner, et le texte qui se trouve derrière la sélection en surbrillance de la goutte La liste déroulante ne change pas du rouge au noir comme je le crois. Si je déplace la souris vers une autre sélection, la couleur est en fait mise à jour.VB.NET ComboBox - Nécessité de forcer un redessin lorsqu'une touche est enfoncée lors de la descente
Voici un extrait du code.
If (e.KeyCode = Keys.Space) Then
If cmbList.SelectedItem IsNot Nothing Then
With DirectCast(cmbList.SelectedItem, SongTitle)
.bSave = Not .bSave
End With
End If
End If
e.Handled = True
Me.Refresh()
Merci pour toute aide que vous pouvez fournir.
Comment ça marche? Utilisez-vous l'événement DrawItem? –
Hans, j'ai mis à jour l'article principal pour expliquer, je l'espère, un peu plus. Merci d'avoir regardé! – Darkn3ss