[vb.net] Programmation "cascade"

Résolu/Fermé
charlibegood - 3 déc. 2011 à 01:05
 charlibegood - 3 déc. 2011 à 19:13
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

A voir également:

6 réponses

petit up !
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
3 déc. 2011 à 13:19
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
3 déc. 2011 à 18:34
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
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