[vb.net] Programmation "cascade"

Résolu
charlibegood -  
 charlibegood -
Bonjour,

Je viens à vous car, j'ai un petit problème pour programmer sur vb.net (gros débutant).

Je vous explique : J'aimerais faire une application assez simple qui consiste à utilisé des conditions en cascade pour avoir une solution.

exemple : 3 choix de départ ( en bouton ) jean, marc, michel. Je clic sur jean cela m'affiche dans la même fenêtre (sans les anciens choix) 2 autres choix ( en bouton toujours ) mâle, femelle. Je clic sur mâle cela m'affiche 3 autres choix ( toujours en bouton et sur la même fenêtre sans les anciens choix) jeune, adulte, vieux. Je clic sur adulte et là cela m'affiche un lien vers internet (cliquable sur la même fenêtre et sans les anciens choix) pour voir une fiche profil type.

Et le tous avec un bouton retour si jamais on se trompe (pas besoin de suivant car il suffira de re-cliquer sur le bouton désiré pour faire suivant)

Si vous trouvez la solution (qui je pense dans le fond est simple) mais dans la forme un peu moins. Je veux surtout éviter de crée une usine à gaz avec 150 form.vb avec les différents choix possible genre 1 form pour jean, marc, michel puis 1 autre avec mâle, femelle etc, etc.

Merci d'avance.
Charlibegood

6 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Un exemple de départ ?
    Un nouveau projet.
    Sur la forme tu colle
    Un label, Label1 (dans le haut de la forme)
    Et tu colle le code ci-dessous
    Public Class Form1
        'Crée la collection d'objet
        Dim ClGroup As New Microsoft.VisualBasic.Collection()
        Dim txtB() As String
        Dim Résultat(3) As String
        Dim Num As Byte = 0
    
        Sub ChangeBouton()
            Dim E As Byte = Num * 3
            For i As Byte = 0 To 2
                ClGroup(CStr(i + 1)).text() = txtB(E + i)
                ClGroup(CStr(i + 1)).visible = Not txtB(E + i) = ""
            Next
            ClGroup("4").Visible = Num > 0
            Label1.Text = ""
        End Sub
        Private Sub AllButton_MouseDown(ByVal sender As System.Object, ByVal e As System.EventArgs)
            If sender.tag = 4 Then
                Num -= 1
                ChangeBouton()
            Else
                Résultat(Num) = sender.text
                Num += 1
                If Num < 3 Then
                    ChangeBouton()
                Else
                    Dim S As String = "Sélection = "
                    For i = 0 To 2 : S = S & Résultat(i) & " | " : Next
                    Label1.Text = S
                End If
            End If
        End Sub
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            txtB = {"Jean", "Michel", "Paul", _
                      "Homme", "Femme", "", _
                     "Jeune", "Adulte", "Vieux"}
            For i As Byte = 1 To 4
                Dim Bout As New Button
                With Bout
                    If i = 4 Then
                        .Location = New Point(180, 147)
                        .Text = "Précédant"
                    Else
                        .Location = New Point((i - 1) * 90 + 9, 113)
                    End If
                    .Size = New Size(75, 23)
                    .Tag = i
                    AddHandler .MouseDown, AddressOf AllButton_MouseDown
                    ClGroup.Add(Bout, .Tag)
                End With
                Controls.Add(Bout)
            Next i
            ChangeBouton()
        End Sub
    
    End Class

    Tu dis...
    A+
    0
  2. charlibegood
     
    Et bien je te remercie, mais tu as un très bon niveau car franchement je n'ais pas compris le code mais il fonction comme l'exemple que j'ai proposé, chapeau bas. Maintenant le soucis sera de m'approprier ce code pour rajouter des boutons, des cascades et des liens + chemin vers dossier etc... je sent que finalement je suis pas du niveau... mais je vais persister car comme on dis, <<oublie que tu n'as aucune chance vas y fonce, sur un malentendu ça peut marcher>>.
    0
  3. charlibegood
     
    D'accord je viens de comprendre un peu comme tu as procédé. Et en faite cela fonctionne dans l'exemple que tu m'as montré mais le "système de défilement verticale" de +3 si le bouton jean est cliqué pour avoir les boutons homme ou femme sur la forme ne vont pas car j'aimerais que chaque cascades soit distinctes. Comment dire ... faire un "système" avec seulement des conditions.

    Autre exemple :

    Cahier des charges:
    -3 cascades distinctes sur 1 forme (en boutons) :(ios, bb os, android os)
    -Puis 2 sous-cascades distinctes (en boutons et sur la même forme) : (particulier, professionnel)
    -Puis 3 sous-sous-cascades (*****) : (sfr, orange, bouygues)
    -Puis 2 sous-sous-sous-cascades (*****) : (config mail, config apn)

    Cas 1 : Je clic sur ios puis sur professionnel puis sur sfr puis sur config mail alors cela m'affiche un dossier nommé (config mail ios) avec les documents nécessaires à la configuration mail d'un iPhone.

    Cas 2 : Je clic sur bb os puis sur particulier alors affiché une phrase ("hors procédure")

    Cas 3 : Je clic sur android os puis sur professionnel puis sur bouygues puis sur config apn alors cela m'affiche un lien internet cliquable vers les identifiant apn de bouygues pour android.

    Voilà, je pense que je suis un peu plus clair dans ma demande. Et je ne sais pas si cela est réalisable sur vb.net car s'il faut que je change de langage de prog pour le faire, je le ferais.

    Finalement je demande comment faire car je suis hotliner et j'aimerais me faciliter la vie en créant mon outil personnel car notre informaticien ne veut pas me le faire .... donc je me débrouille seul du moins j'essaie ^^ merci en tout cas.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Comme dis, c'est un début de piste.
    Pour réaliser ce que tu veux étudie les tableaux multi dimentions.
    Genre TB(3,12)
    Je ne compte pas te faire une appli clés sur porte, à toi maintenant.
    A+
    0
  6. charlibegood
     
    Oui, j'ai bien compris et c'est logique de ne pas avoir du sur mesure.

    Mais simplement, j'ai l'impression de ne pas suivre le bon chemin avec votre code.

    Je regarderais les tableaux multi dimensions mais au vue de mes compétences, c'est peine perdu. J'aurais 1 an pour apprendre à développer, je ne vous embêterais pas mais ce n'est pas mon cas. Je voulais juste un exemple et vous me l'avez donné donc je n'attend rien de plus. Merci encore. Vous pouvez clore ce sujet.

    Edit : je n'avais pas vu qu'on pouvais le clore sois même ..
    0