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.
Imaginons une liste remplie avec le code suivant :
Code vb.net : | Sélectionner tout |
1 2 3 | For cmpt As Int32 = 1 To 100 Me.ListBox1.Items.Add("élément" & cmpt.ToString) Next |
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | cmpt = -1 Do cmpt = ListBox1.FindString("élément1", cmpt) If cmpt <> -1 Then If ListBox1.SelectedIndices.Count > 0 Then If cmpt = ListBox1.SelectedIndices(0) Then Exit Do End If End If ' Utilise SetSelected pour forcer la sélection ListBox1.SetSelected(cmpt, True) End If Loop While cmpt <> -1 AndAlso cmpt < Me.ListBox1.Items.Count - 1 ListBox1.MultiColumn = True |
C'est désormais assez facile à faire. Ajoutez une zone de liste dans un formulaire. Dans l'évènement Load de la feuille, nous allons remplir et modifier un peu cette liste
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | Dim cmpt As Int32 For cmpt = 1 To 100 Me.ListBox1.Items.Add("élément" & cmpt.ToString) Next With Me.ListBox1.Items .Remove("élément30") .RemoveAt(50) .Insert(29, "élément30") End With |
Code vb.net : | Sélectionner tout |
1 2 3 4 5 6 7 | Dim MonEnum As IEnumerator = Me.ListBox1.SelectedItems.GetEnumerator Dim MaList As ListBox.ObjectCollection = New ListBox.ObjectCollection(Me.ListBox1) While MonEnum.MoveNext MaList.Add(MonEnum.Current) End While Me.ListBox1.Items.Clear() Me.ListBox1.Items.AddRange(MaList) |
Ce bout de code permet de montrer comment on peut lister l'ensemble des fichiers et sous dossiers d'un répertoire dans une Listbox. Pour cela, il suffit d'utiliser une fonction récursive c'est à dire une fonction qui va s'appeler elle-même.
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 | Public Sub ListerMesRepertoire(ByVal Rep As String) Try ' Récupère la liste des entrées du répertoire Dim Liste As String() = Directory.GetFileSystemEntries(Rep) Dim Entree As String For Each Entree In Liste 'Pour chaque entrée de la liste Dim TmpName As String = Microsoft.VisualBasic.Mid(Entree, Len(Rep) + 1) 'On découpe proprement le nom du fichier ou répertoire TmpName = Replace(TmpName, "'\'", "") ' On enlève les caractères parasites If File.Exists(Entree) Then ' Si c'est un fichier ListBox1.Items.Add(TmpName) Else 'Si c'est un répertoire ListerMesRepertoire(Entree) ' On liste le contenue de ce répertoire End If Next (Entree) Catch Ex As System.UnauthorizedAccessException ' Si le répertoire est interdit Exit Sub Catch e As Exception 'en cas d'erreurs MsgBox("Erreur : " & e.Message, MsgBoxStyle.Critical) End Try 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.