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

VB.NET Discussion :

Accéder à un contrôle LISTVIEW de manière dynamique


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 41
    Par défaut Accéder à un contrôle LISTVIEW de manière dynamique
    Bonjour à tous (et bonne année !!!)

    bon alors voilà : j'ai fait mes classes en développant une grosse appli en VBa - XL - ACCESS mais là ça commence à faire des choses qui ne me plaisent pas du tout, surtout depuis que dans ma boîte on est passé en Windows 10 + Office 2010 avec des versions de MSCOMCTL.OCX et MSCOMCT2.OCX différentes d'une install à l'autre...

    en clair, les utilisateurs ont des messages d'erreur dans tous les sens au gré des nouvelles versions que je déploie...

    donc j'essaie de faire un truc plus robuste avec Visual Studio et donc en VB...

    et là ça va plus du tout...

    j'essaie de remplir 3 listviews en les appelant de manière dynamique.
    chaque listview est dans un groupbox
    ces groupbox sont dans un tabcontrol qui est donc dans un form (ouf !)

    bref...

    j'ai ma petite procédure pour remplir les headers de ma listview (récupérée de mon code VBa mais adapté en VB)... mais visiblement pas assez car ça ne marche pas et j'ai beau écumer les forums et me creuser la tête... je te trouve pas...

    mon code initial :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Format_Lst(Quoi, field)
            Dim Field
            Dim titre = Split(Field, ",")
            With Controls("Lst_" & Quoi)
                .Columns.Clear()
                .Items.Clear()
                For i = 0 To UBound(titre)
                    .Columns.Add(Trim(titre(i)))
                Next i
     
            End With
     
        End Sub
    ensuite j'ai tenté des choses...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Format_Lst(Quoi, field)
            Dim Field
            Dim titre = Split(Field, ",")
            dim ess as listview = me.controls("Lst_" & Quoi)
            With ess
                .Columns.Clear()
                .Items.Clear()
                For i = 0 To UBound(titre)
                    .Columns.Add(Trim(titre(i)))
                Next i
     
            End With
     
        End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Format_Lst(Quoi, field)
            Dim Field
            Dim titre = Split(Field, ",")
            dim ess as groupbox = me.mutlipage1.controls("frame_" & Quoi)
            With ess.controls("Lst_" & Quoi)
                .Columns.Clear()
                .Items.Clear()
                For i = 0 To UBound(titre)
                    .Columns.Add(Trim(titre(i)))
                Next i
     
            End With
     
        End Sub
    rien n'y fait...

    dans la fenêtre d'espion, ess ressort invariablement en NOTHING...

    un petit peu d'aide ne serait pas de refus du coup...

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour
    A priori tu as besoin d'un sérieux recyclage en VB.Net car il diffère fortement de VB6 qui est un peu sauvage aussi bien en matière de syntaxe que par ses Controls Winforms.
    Je t'engage à lire des cours ou tutos vivement sur la Faq du Forum.

    code exemple .vb pour ajout des colonnes de headers et des Items et leurs SubItems :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    'exemple avec ListView denommé "lv1" droppe sur le Form
    Public Class Form2
     
        Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            'ajout de 4 headers
            Dim headers As String = "Column1,Column2, Column3, Column4"
            Setup_Headers(1, headers)
     
            'ajout de 3 ListViewItems
            Dim items As String = "Item1,Item2, Item3" '3 ListViewItems
     
            'chacun pourvu de 
            Dim subItems As String = "1, 2, 3, 4" ' 4 SubItems
            Setup_Items(1, items, subItems)
        End Sub
        Sub Setup_Headers(num As Integer, theHeaders As String)
            'Dim Field 
            Dim arr() As String = Split(theHeaders, ",")
            Dim lv As ListView = Controls("lv" & num.ToString())
            With lv
                .Columns.Clear()
                For i = 0 To arr.GetUpperBound(0)
                    .Columns.Add(Trim(arr(i)))
                Next i
            End With
     
        End Sub
        Sub Setup_Items(num As Integer, theItems As String, theSubItems As String)
     
            Dim arr() As String = Split(theItems, ",")
            Dim lv As ListView = Controls("lv" & num.ToString())
     
            With lv
                .Items.Clear()
                For i = 0 To arr.GetUpperBound(0)
                    .Items.Add(Trim(Trim(arr(i))))
                Next i
            End With
     
            arr = Split(theSubItems, ",")
            For i As Integer = 0 To lv.Items.Count - 1
                For j As Integer = 0 To arr.GetUpperBound(0)
                    lv.Items(i).SubItems.Add(Trim(arr(j)))
                Next
            Next
     
     
     
        End Sub
    End Class
    bon code...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 41
    Par défaut
    ah...

    merci

    bon, alors je n'ai plus qu'à me remonter les manches et me cracher dans les mains

    merci

Discussions similaires

  1. ListView : accéder au contrôle correspondant à un item
    Par jacquesprogram dans le forum Windows Presentation Foundation
    Réponses: 11
    Dernier message: 30/09/2014, 17h01
  2. Comment charger une DLL win32 en C# de manière dynamique
    Par Jayceblaster dans le forum Windows Forms
    Réponses: 4
    Dernier message: 10/06/2009, 18h38
  3. [JTable] Changer les colonnes de manière dynamique
    Par gg2laba dans le forum Composants
    Réponses: 3
    Dernier message: 03/10/2005, 23h39
  4. accéder à un contrôle de formulaire avec un nom de tableau
    Par jibouze dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/06/2005, 23h57
  5. Réponses: 2
    Dernier message: 10/05/2005, 14h20

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