La méthode « DrawItem » de Visual Basic vous permet de construire des contrôles imaginatifs. Le contrôle ListBox, par exemple, affiche les éléments d’une liste ; toutefois, vous ne pouvez modifier que la couleur du texte de chaque élément du contrôle. Pour créer une ListBox améliorée qui affiche le texte d’un élément sélectionné dans une couleur différente, vous devez apporter une petite modification à la méthode « DrawItem » de la ListBox.
Lancez Visual Studio et créez un nouveau projet Visual Basic Windows Forms. Un nouveau formulaire nommé « Form1 » s’ouvre dans la fenêtre d’édition.
Cliquez sur le bouton « View », puis sur « Toolbox » pour ouvrir la boîte à outils de Visual Studio.
Double-cliquez sur la commande « ListBox ». Visual Studio le place sur le formulaire et le nomme « ListBox1 ».
Cliquez sur la commande « ListBox1 » et appuyez sur « F4 » pour afficher la fenêtre Propriétés. Cette fenêtre vous permet de définir les propriétés d’un contrôle, telles que la couleur et la taille.
Cliquez sur la propriété « ForeColor ». Une flèche déroulante apparaît à côté de la propriété. Cliquez sur cette flèche pour afficher un menu de couleurs contenant des onglets. L’onglet « Système » affiche les couleurs du système Windows ; l’onglet « Web » affiche la liste des couleurs du Web ; et l’onglet « Personnalisé » vous permet de choisir votre propre couleur à partir d’une grille de couleurs.
Cliquez sur l’un de ces onglets, puis cliquez sur la couleur que vous souhaitez utiliser pour le texte de tous les éléments ListBox.
Cliquez sur l’élément « BackColor » dans la fenêtre Propriétés pour afficher sa flèche déroulante. Cliquez sur cette flèche pour choisir une couleur comme décrit à l’étape précédente. Visual Basic utilise ensuite la couleur que vous avez sélectionnée comme couleur de fond pour tous les éléments ListBox. Passez à la section suivante si vous voulez changer la couleur de l’élément ListBox sélectionné.
Double-cliquez sur la barre de titre du formulaire. Le code de la méthode « Load » du formulaire s’ouvre et affiche une méthode « Load » vide.
Collez le code suivant avant l’instruction « End Sub » de cette méthode :
ListBox1.Items.AddRange(New Object() {« Item 1 », « Item », « Item », « Item », « Item », « Item 4 »})
ListBox1.DrawMode = DrawMode.OwnerDrawDrawFixed
La première instruction ajoute des éléments à la ListBox. L’instruction suivante règle le mode de dessin du contrôle sur « OwnerDrawFixed ». Utilisez ce mode lorsque vous souhaitez remplacer le mode de dessin par défaut de Visual Basic pour un contrôle.
Collez le code suivant après l’instruction « End Sub » de la méthode « Load » :
Private Sub ListBox1_DrawItem(ByVal sender As Object, __DrawItem(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DrawItemEventArgs) _ __.
Poignées ListBox1.DrawItem ListBox1.DrawItem
Laisser un commentaire