FAQ VB.NETConsultez toutes les FAQ
Nombre d'auteurs : 37, nombre de questions : 240, dernière mise à jour : 12 mai 2018 Ajouter une question
Cette FAQ a été réalisée pour répondre aux questions les plus fréquemment posées sur le forum Développement DotNET
Je tiens à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle contient sont correctes. Les auteurs font le maximum, mais l'erreur est humaine. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, lisez ceci.
Sur ce, je vous souhaite une bonne lecture.
L'objet ListViewSubItem a une propriété BackColor mais pour que l'assignation soit effective il ne faut pas oublier de modifier la propriété UseItemStyleForSubItems du ou des ListViewItem concerné(s) en lui attribuant la valeur False.
Si vous souhaitez effectuer cette manœuvre par programmation, voici un exemple :
Coloration en jaune de toute la première colonne d'un ListView1
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | Imports System Imports System.Drawing Imports System.Windows.Forms ' ... Dim lvi As ListViewItem For Each lvi In Me.ListView1.Items lvi.UseItemStyleForSubItems = False lvi.SubItems(0).BackColor = Color.Yellow Next Me.ListView1.View = View.Details |
L'objet ListView dispose d'une propriété ListViewItemSorter de type IComparer. Cela permet d'implémenter sa propre gestion du tri.
Pour ce faire, il faut créer une classe dérivant de IComparer implémentant la méthode Compare.
Code vb.net : | Sélectionner tout |
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 | Class ListViewItemComparer Implements IComparer Private col As Integer Private sortOrder As SortOrder Public Sub New() col = 0 sortOrder = Windows.Forms.SortOrder.Ascending End Sub Public Sub New(ByVal column As Integer) col = column sortOrder = Windows.Forms.SortOrder.Ascending End Sub Public Sub New(ByVal column As Integer, ByVal s As SortOrder) col = column sortOrder = s End Sub Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare If sortOrder = Windows.Forms.SortOrder.Ascending Then Return String.Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text) Else Return String.Compare(CType(y, ListViewItem).SubItems(col).Text, CType(x, ListViewItem).SubItems(col).Text) End If End Function End Class |
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | Private Sub ListView1_ColumnClick(ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles ListView1.ColumnClick If Me.ListView1.Sorting = SortOrder.Ascending Then Me.ListView1.Sorting = SortOrder.Descending Else Me.ListView1.Sorting = SortOrder.Ascending End If Me.ListView1.ListViewItemSorter = New ListViewItemComparer(e.Column, Me.ListView1.Sorting) End Sub |
Dans l'exemple suivant, j'utilise des icônes stockés dans un contrôle ImageList. Partons du cas suivant :
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load With Me.ListView1 .LargeImageList = Me.ImageList1 .MultiSelect = False .Activation = ItemActivation.TwoClick .View = View.LargeIcon End With For Cmpt As Int32 = 0 To 5 Me.ListView1.Items.Add("Elément " & Cmpt, Cmpt) Next End Sub |
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 | For Cmpt = 0 To 5 Dim ObjetList As New ListViewItem With ObjetList .Text = "Elément " & Cmpt .ImageIndex = Cmpt End With Me.ListView1.Items.Add(ObjetList) Next |
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | For Cmpt = 0 To 5 Dim ObjetList As New ListViewItem With ObjetList .Text = "Elément " & Cmpt .ImageIndex = Cmpt If Cmpt Mod 2 = 0 Then .ForeColor = Color.Red .Font = New Font("Arial", 10, FontStyle.Italic) End With Me.ListView1.Items.Add(ObjetList) Next |
Une liste de ce type est un contrôle ListView dont la propriété View vaut « Details ». L'exemple suivant est une liste de fichier classique ou les fichiers « Zip » seront affichés en vert.
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim Repertoire As New System.IO.DirectoryInfo("d:\user\tutos") Dim ListeFichier() As System.IO.FileInfo = Repertoire.GetFiles Me.ListView1.View = View.Details With Me.ListView1 .Columns.Add("Nom", 200, HorizontalAlignment.Center) .Columns.Add("Taille", 80, HorizontalAlignment.Right) .Columns.Add("Date", 100, HorizontalAlignment.Center) End With Dim cmpt As Int32 For cmpt = 0 To ListeFichier.GetUpperBound(0) With Me.ListView1.Items.Add(ListeFichier(cmpt).Name) .SubItems.Add(ListeFichier(cmpt).Length.ToString) .SubItems.Add(ListeFichier(cmpt).CreationTime.ToString) If ListeFichier(cmpt).Extension.IndexOf("zip") > 0 Then .ForeColor = Color.Green End If End With Next End Sub |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.