Comment afficher la config de son soft avec des bouttons radios ou des checkbox [Résolu]

Signaler
Messages postés
34
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
4 janvier 2012
-
Messages postés
34
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
4 janvier 2012
-
bonjours
je recois un string ou dedans j'ai une chaine binaire
j'ai voudrais mettre soit des radios bouttons ou des checkbox et qu'en fonction de ma reponse binaire cella vienne cocher automatiquement les boutons ou les checks
en gros je veux faire comme dans un soft il y a cette option active si elle est cochée et pas active si elle est pas active

comment je peux arriver à realiser ca j'ai trouve pas mal d'infos (cocher pour avoir tel ou tel options) mais rien sur le sens qui m'interesse
ps je debut
merci a+

9 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
c'est du vb.net ce que tu nous montres là?


reprenons
je recois un string ...
non tu la récupères d'une saisie, ce qui veut dire déjà qu'elle pourrait être formatée lors de la saisie !!

...ou dedans j'ai une chaine binaire
non, composée de CARACTèRES étant des 0 et 1, et apparemment même des espaces

j'ai voudrais mettre soit des radios bouttons
çà serait dommage puisqu'il faudrait autant de containers référents

qu'en fonction de ma reponse binaire
laquelle??


c'est sûr que ce n'est pas simple d'expliquer, par contre çà ne coute rien d'essayer parce que crois-moi, simple je sais pas, mais c'est pas marrant d'essayer de comprendre !
(pis on ne lit pas qu'un topic par semaine hein )


bref, de ce que j'ai compris tu as une chaine de N caractères que tu sais récupérer d'une zone de texte et "formater" de manière à ce qu'elle ne soit QUE composée de 010101... sur 256 caractères

ok alors petite modif pour commencer, puisque ce n'est pas du VB6 !


Dim sBytes As String = TextBox1.Text.Replace(" ", String.Empty)

voilà qui remplace tes 5 premières lignes


mais faisons le test à plus petite échelle :
pose juste 4 checkbox(es) et un bouton sur une form


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim strReceive As String = "11 01  " '..... 256 caractères

        'la chaine sans les espaces
        Dim sBytes As String = strReceive.Replace(" ", String.Empty)

        'vérification de la taille
        If sBytes.Length = 4 Then '256 !
            'les chechboxes correspondant à la position du caractère en cours de lecture seront CHECKED
            For i As Integer = 1 To sBytes.Length
                'elles sont nommées de CheckBox1 à CheckBox256
                DirectCast(Me.Controls("CheckBox" & i.ToString), System.Windows.Forms.CheckBox).Checked = sBytes(i - 1).Equals("1"c)
            Next
        Else
            MessageBox.Show("la chaine ne contient pas le nombre de caractères attendus")
        End If
    End Sub



le mots maitres ici sont
DIRECTCAST
ME.CONTROLS(NOMENCLATURE)

le petit plus est qu'une chaine en vb.net est directement accessible comme un tableau de CHAR dont l'indice commence à zero

++

[hr]
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

et cette string, tu la reçois d'où?
mais tu reçois une string? un byte? un tableau de bytes?
tu es sous quelle version de vb?

etc....
il faut nous dire tout çà dès la question plutôt que nous obliger à t'interroger.
à toi d'être précis pour obtenir une réponse précise !

en attendant voici un fil où le fichier ressources d'une application vb.net 2005 ou 2008 contient un boolean, avec coche d'une checkbox selon cette valeur

http://www.vbfrance.com/forum/sujet-MY-COMPUTER-AUDIO-PLAY-MY-SETTINGS-ENSEMBLE_1340056.aspx

[hr]
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
J'ai rien compris de ton probleme.

deuxieme relecture.

tu "recois" (d'ou ?) une chaine 0101100111
tu souhaites, en fonction de l'etat 1 / 0 de tel ou tel "bit"
cocher telle ou telle checkbox ou RadioButton

du coup, je me demande où est le passage qui coince...

Dim Config As String = "0101100111"
CheckBox1.Checked Config.Substring(1, 1) "1"
RadioButton1.Checked Config.Substring(2, 1) "1"

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
34
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
4 janvier 2012

deja merci pour vos reponse
je travail sous visual studio 2008

je souhaite, en fonction de l'etat 1 / 0 de tel ou tel "bit"
cocher telle ou telle checkbox

la solution proposé part Renfield marche mais
j'ai dans mon string 256 caracteres binaire
donc si je dois me taper 256 fois ca
CheckBoxY.Checked = Config.Substring(1, 1)= "1" Y= le numero du checkbox

j'ai pensé faire une boucle
je me suis servi du compteur pour donner le numero du checkbox
mais j'ai un probleme pour ecrire le checkbox avec son numero

je n'y arrive pas

voila ce que j'ai fait
je debute
merci a+


'vide les variables
temp1 = ""
temp2 = ""
Stop
temp1 = TextBox1.Text 'insert le txt dans temp1
temp1 = Replace(temp1, " ", "") 'je suprime les epaces
temp1 = hextobin() 'je le converti en bin
temp1 = bin 'je remplace temp1 part la reponse en bin
temp1 = StrReverse(temp1) 'je reverse la totalité de la chaine
temp2 = Len(temp1) '=256 c'est le nombre de case qui correspond au 256 caractere binaire quand il sont à 1 il faut cocher
'ca sert à rien juste pour verifier la longeur avec un espion

Dim i As Integer
Dim x As Integer
For i = 1 To 256
x = Mid(temp1, i, 1)
If x = 1 Then
CheckBox(+(i) = True)
End If
Next
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
y'a pas de groupes de controles en .NET

CheckBox(+(i) = True)

CheckBox est un tableau de contrôles que tu gères toi même ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
34
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
4 janvier 2012

re
desole j'ai pas compris la reponse arf c'est dur quand on commance pour s'expliquer

CheckBox est un tableau de contrôles que tu gères toi même ?
il est gere part la partie hexa que je vais rentrer manuellement dans le textbox
ensuite elle est convertie en bin et la apres il faut que ca check le checkbox tous seul en fonction des bits à 1 ou 0 de mon resultat binnaire (j'ai 256 checkbox pour mes 256 caracteres de ma chaines binaire)

donc je ne peux pas arrive à faire cocher toute les valeurs qui sont à 1 avec ma boucle

il a une autre solution ? avec une boucle ?

sinon la tienne mais ca me fait faire (256x2) lignes de commande il y a pas plus simple ?
merci
a+
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
il te faut pouvoir faire correspondre facilement un indice à une checkbox donnée, pou pouvoir utiliser une boucle.

d'ou mon conseil d'utiliser un tableau de checkboxes

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
Joli, .Net devient sympa, codé ainsi

dommage que l'IDE soit tellement gourmand et lent

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
34
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
4 janvier 2012

merci beaucoup
ca marche impect
juste pour te dire que je gratte depuis ce matin lol
bien j'ai reussi avec les 4 checkbox mais j'arrivais pas avec les 256 checkbox
il m'a fallu pres de 5 heures pour comprendre que mes ckeckbox ete dans un groupbox et que le probleme venait de la
lol c'est dur les debut il y a des pieges con

j'ai aussi dans un petit soft un probleme d'affiche des valeurs recus
je pense que ca doit venir de la
j'ai l'affichage de ma valeur à la fin du mode pas à pas mais je l'ai pas en debug

merci à tous ceux qui on participé
a+