IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] afficher 1 seul item dans une listbox, ça marche avec plusieurs pourtant...


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Points : 29
    Points
    29
    Par défaut [VB.NET] afficher 1 seul item dans une listbox, ça marche avec plusieurs pourtant...
    J'ai créé une procédure pour afficher des éléments (des noms d'images dans mon cas) dans une listbox, cela marche parfaitement quand j'ai au moins deux éléments (ils sont visible dans la listbox), mais jamais pour un seul élément, il est TOUJOURS invisible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Private Sub load_pics(ByVal selectFirst As Boolean)
            If Directory.Exists(Application.StartupPath.Substring(0, 1) & ":\vbproject\cads\" & currentfolderselected) Then
                Dim di As New DirectoryInfo(Application.StartupPath.Substring(0, 1) & ":\vbproject\cads\" & currentfolderselected)
                ' Create an array representing the files in the current directory.
                Dim fi As FileInfo() = di.GetFiles()
                Dim fiTemp As FileInfo
                ProfileList.Items.Clear() 'clean the list
                ProfileList.BeginUpdate() 'add pics, block the update of the listbox first
                Dim extensionpath As String
                Dim tampon As String
                For Each fiTemp In fi
                    extensionpath = fiTemp.ToString
                    tampon &= extensionpath & vbNewLine
                    extensionpath = Mid(extensionpath, extensionpath.LastIndexOf(".") + 2, 3)
                    If (extensionpath = "gif" Or extensionpath = "bmp" Or extensionpath = "jpg" _
                    Or extensionpath = "GIF" Or extensionpath = "BMP" Or extensionpath = "JPG") Then ProfileList.Items.Add(fiTemp.ToString)
                Next fiTemp
                ProfileList.EndUpdate()
     
                Console.Write(vbNewLine & tampon & ProfileList.Items.Count)
     
                If ProfileList.Items.Count > 0 And selectFirst Then ProfileList.SetSelected(0, True) 'if selectFirst then, select first item of the listbox
            End If
        End Sub
    La variable fiTemp contient bien quelque chose quand il n'y a qu'un élément et ProfileList.Items.Count = 1 aussi.

    Je crois que cela est dû à un problème de rafraichissement de la listbox. J'ai pourtant essayé de faire ça avec les méthodes ProfileList.Refresh() et ProfileList.Update(), mais sans succès.

    Quelqu'un a-t'il déjà le problème ? Merci d'avance pour vos réponses.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    J'ai simplifié le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub load_pics()
            If Directory.Exists("c:\my folder") Then
                Dim di As New DirectoryInfo("c:\my folder") 
                ' Create an array representing the files in the current directory.
                Dim fi As FileInfo() = di.GetFiles()
                Dim fiTemp As FileInfo
                ProfileList.Items.Clear() 'clean the list
                ProfileList.BeginUpdate() 'add items, block the update of the listbox first
                For Each fiTemp In fi
                      ProfileList.Items.Add(fiTemp.ToString)
                Next fiTemp
                ProfileList.EndUpdate()
            End If
        End Sub
    En gros, je reprends les caractéristiques d'une farde, ce qui me permet de connaitre tous les fichiers qu'elle contient. Je rajoute ensuite tous ces fichiers dans une listbox appelée ProfileList.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Ca fonctionne sans le filtrage des fichiers images, je ne comprends pas trop pourquoi...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    J'ai passé une collection contenant mes items à la propriété datasource de ma listbox et ça fonctionne. Aucune idée pourquoi ça ne fonctionne pas par ajout direct...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.Net] afficher un fichier pdf dans une page WEB
    Par kasaw dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/08/2008, 16h02
  2. Réponses: 3
    Dernier message: 29/08/2006, 12h50
  3. [VB.NET] Suppression d'un item dans une listview
    Par Remedy dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/07/2006, 16h00
  4. comment valider/devalider un item dans une listBox?
    Par Mickey.jet dans le forum Delphi
    Réponses: 2
    Dernier message: 30/05/2006, 07h25
  5. [Question] Ajouter un item dans une ListBox
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 29/12/2005, 19h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo