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 :

Trouver quels sont les éléments d'un CheckedListBox qui sont sélectionnés. [Débutant]


Sujet :

VB.NET

  1. #1
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut Trouver quels sont les éléments d'un CheckedListBox qui sont sélectionnés.
    Bonjour à tous,

    Voici mon problème.

    J'utilise un CheckedListBox pour permettre à l'utilisateur de sélectionner une ou plusieurs options sous la forme d'une série de bits (0, 1) qui sera sauvegardée dans un fichier après avoir transformé cette série de 8 bits en une valeur de type Byte. Je n'ai aucun problème pour passer d'une série de bits à une valeur Byte et inversement. Mon problème consiste à déterminer quels sont les éléments du CheckedListBox qui sont "Checked" ce qui leur vaudra un "1" et ceux qui ne le sont pas "0".

    J'ai beau chercher la syntaxe, je ne trouve pas.

    Merci pour vos suggestions.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    tu fais F1 sur CheckedListBox, tu dois arriver par là :
    https://docs.microsoft.com/fr-fr/dot...ramework-4.7.2
    (F1 qui sert d'aide depuis l'invention du clavier)

    ensuite tu regardes les propriétés et les méthodes (treeview dans la partie de gauche du site) qui contiennent "check" dans leur nom et tu verras que tu foultitude de moyen de récupérer ce que tu cherches
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut
    Merci pour la référence.

    Cependant, les exemples de code sont en C#. Je pense que je suis bien dans le forum VB.NET. Je ne comprends rien au C#.

    Merci

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Archampi Voir le message
    Merci pour la référence.

    Cependant, les exemples de code sont en C#. Je pense que je suis bien dans le forum VB.NET. Je ne comprends rien au C#.

    Merci
    Tu peux aller voir là.

    Le premier est pour VS 2017 et gratuit. Les autres, je n'ai pas regardé.

    Et il y en a plusieurs en ligne.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    c# et vb.net sont 2 languages qui font partie de .net
    ils sont totalement* traductibles de l'un à l'autre et utilisent le même Framework, seule la syntaxe change

    l'aide est celle du Framework, parfois on peut avoir les exemples en c# et vb.net, là seul c# est dispo …
    mais ca ne change rien ; l'aide explique avec des phrases en français tous les concepts du Framework .net, pour chaque classe on peut voir tous les membres et leur fonctionnalité
    donc même si tu ne sais pas lire le c# ca devrait être faisable de faire comme je t'ai dis de regarder les membres qui existent sur cette classe et de regarder leur description pour savoir si c'est ca qu'il te faut

    après apprendre à lire le c# un minimum n'est pas compliqué et peut etre utile, et pour commencer tu peux t'aider de convertisseurs vb.net/c#
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut
    Merci pour les liens.

    Voici le bout de code que j'essaie de faire fonctionner.

    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
     
    Dim Chaîne As String = ""
    Dim Élément As CheckedListBox.ObjectCollection
    Dim Contrôle As Object
     
    For Each Contrôle In Me.Controls
        ...
        'Les autres types de contrôles sont testés ici
        ...
     
        ElseIf TypeOf Contrôle Is CheckedListBox Then
            For Each Élément In Contrôle.Items            'C'est cette ligne qui bogue
                If Élément.Checked = True Then
                    Chaîne = Chaîne & "1"
                Else
                    Chaîne = Chaîne & "0"
                End If
            Next Élément
        End if
     
    Next

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Non testé, mais essaie comme cela

    Puisque Élément est déclaré comme une collection, tu dois itérer sur chaque sous-élément.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     ElseIf TypeOf Contrôle Is CheckedListBox Then
     
            For i = 0 to Élément.count - 1
                If Élément(i).checked = True Then
                    Chaîne = Chaîne & "1"
                Else
                    Chaîne = Chaîne & "0"
                End If
            Next Élément
        End if
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  8. #8
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut
    Merci Clément, je vais tester.

  9. #9
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut
    Finalement, voici la solution:

    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
     
        Private Sub Test(Contrôle As Object)
            Dim Coché As Boolean = False
            Dim Chaîne As String = ""
            Dim j As Integer
     
            If TypeOf Contrôle Is CheckedListBox Then
                For j = 0 To Contrôle.Items.Count - 1
                    Coché = Contrôle.GetItemCheckState(j)
                    If Coché = True Then
                        Chaîne = Chaîne & "1"
                    Else
                        Chaîne = Chaîne & "0"
                    End If
                Next
                Debug.Print(Nombre(Chaîne))
                Chaîne = Base(2, Nombre(Chaîne))
                Debug.Print(Chaîne)
            End If
        End Sub
    Les dernières lignes de code servent simplement à valider l'exactitude des calculs avec deux fonctions. La première retourne la valeur en Byte et l'autre retourne la chaîne à partir de la valeur Byte.

    Merci à tous pour votre inspiration et vos encouragements à poursuivre mes efforts.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 24/11/2016, 17h33
  2. Lire les éléments d'une CheckedListBox
    Par dragondumond dans le forum VB.NET
    Réponses: 5
    Dernier message: 07/06/2013, 09h54
  3. Réponses: 3
    Dernier message: 12/03/2012, 09h26
  4. Réponses: 3
    Dernier message: 24/10/2010, 13h03
  5. Réponses: 1
    Dernier message: 04/10/2010, 12h09

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