Partage
  • Partager sur Facebook
  • Partager sur Twitter

boucle for & tableau

VB.net

Sujet résolu
    14 mars 2011 à 17:28:35

    Bonjour à tous, voila avant j'étais sous QT en c++ maintenant je m'attaque au VB.net :D

    J'aimerais créer un truc assez simple pour l'instant j'ai celà :

    If PositionComboBOX = "1" Then
                Form1.Label1.Text = StringDate
                Form1.Label11.Text = TXT_NEWSITE.Text
                Form1.Label12.Text = TXT_NEWPB.Text
                Form1.Label13.Text = AlertLevel
                Me.Close()
            End If


    Donc en fonction du choix de la combobox ,j'écrit à la ligne 1 si combobox est à 1
    a la ligne 2 si la combobox est à 2 et ainsi de suite.
    Mais je veux faire ma fonction 10fois et je pense que copier celà 10fois et le copier c'est pas trés programmateur, précédent sous Qt j'éffectuer quelque chose comme celà :

    for(int i = 0 ; i< 8 ; i++)
        {
             if( CalculCombobox = i 
            {
             NumAffichage = Affichage.at(i); " J'ai stocker l'adresse du label dans un tableau "
             nom.at(NumAffichage)->clear(); " J'ai stocker l'adresse du texte dans un tableau "
            }
        }


    Voila existe t'il un truc simple de ce genre la sous VB.net ?

    Merci à tous
    • Partager sur Facebook
    • Partager sur Twitter
      14 mars 2011 à 20:08:55

      Pourquoi vouloir passer de C++ à VB.Net ? :waw:
      Quitte à faire du .Net essaie donc le C#, ça te paraitra beaucoup plus familier ! :magicien:

      Tu pourrais faire exactement pareil en C# (les erreurs de syntaxe en moins). Note que la boucle que tu décris n'est pas efficace du tout, puisqu'il suffit d'exécuter son contenu une seule fois (pour i égal à CalculCombobox).

      Tu aurais ceci en C#:

      numAffichage = affichage[calculCombobox];
      nom[numAffichage].Clear();
      


      Et en VB.Net:

      numAffichage = affichage(calculCombobox);
      nom(numAffichage).Clear();
      

      En supposant que tu aies initialisé les tableaux affichage et nom auparavant.
      • Partager sur Facebook
      • Partager sur Twitter
        15 mars 2011 à 11:42:35

        Tout d'abord on m'impose le VB.net ensuite je vois bien ce que tu me demande de faire avec :
        numAffichage = affichage(calculCombobox);
        nom(numAffichage).Clear();


        Mais ici il faut stockés nom(numAffichage) quelque part non ? genre
        nom(1)= Label1
        nom(2) = Label2
        nom(3) = Label3
        mais comment stockés cela dans un tableau ?
        • Partager sur Facebook
        • Partager sur Twitter
          15 mars 2011 à 15:21:05

          Pourquoi ne pas faire sous vb.net comme ton exemple qt? un for et un if?
          • Partager sur Facebook
          • Partager sur Twitter
            15 mars 2011 à 15:47:33

            Bah sous VB.net je ne sais pas mettre dans un tableau les textbox :/

            du style : Tableau.1 = Textbox1

            Tableau.2 = Textbox2

            Tableau.3 = Textbox3
            • Partager sur Facebook
            • Partager sur Twitter
              15 mars 2011 à 15:59:42

              Alors si je me trompe pas ça doit donner cela
              Dim Tableau(10)as string
              Tableau(1) = "toto"
              Tableau(2) = "tata"
              etc...
              


              Et pour afficher ton text
              Textbox1.text = tableau(1)
              etc...
              

              Par contre tu peux utiliser la propriété multiligne d'une textbox plutot que crée une textbox par text non?
              Autre tuto vb.net moins digeste
              • Partager sur Facebook
              • Partager sur Twitter
                15 mars 2011 à 16:18:41

                Mais moi je ne veux pas stockés dans mon tableau des strings mais plutôt du style son adresse...
                En gros stocker l'adresse de la textbox.

                J'ai sa :

                If PositionLST = "1" Then
                            Form1.date1.Text = StringDate
                            Form1.Site1.Text = TXT_NEWSITE.Text
                            Form1.PB1.Text = TXT_NEWPB.Text
                            Form1.LVL1.Text = AlertLevel
                            Me.Close()
                        End If
                
                        If PositionLST = "2" Then
                            Form1.date2.Text = StringDate
                            Form1.Site2.Text = TXT_NEWSITE.Text
                            Form1.PB2.Text = TXT_NEWPB.Text
                            Form1.LVL2.Text = AlertLevel
                            Me.Close()
                        End If
                
                        If PositionLST = "3" Then
                            Form1.date3.Text = StringDate
                            Form1.Site3.Text = TXT_NEWSITE.Text
                            Form1.PB3.Text = TXT_NEWPB.Text
                            Form1.LVL3.Text = AlertLevel
                            Me.Close()
                        End If

                Mais j'aimerais le faire en plus propre, donc moins de ligne de code. J'avais penser a un tableau avec un if du style :

                Dim i As Integer
                
                Dim Tableau(5)as "Link"
                Tableau(0) = Form1.date1.text
                Tableau(1) = Form1.date2.text
                Tableau(2) = Form1.date3.text
                Tableau(3) = Form1.date4.text
                
                PositionLST = i
                
                            Form1.date.i = StringDate
                            Form1.Site.i = TXT_NEWSITE.Text
                            Form1.PB.i = TXT_NEWPB.Text
                            Form1.LVL.i = AlertLevel


                Vous comprenez mieux ?
                • Partager sur Facebook
                • Partager sur Twitter
                  16 mars 2011 à 1:52:45

                  Si je comprends bien tu veux simplement créer un tableau de textboxes.

                  Dim mesTextbox As TextBox() = New TextBox(9) {}
                  
                  For i As Integer = 0 To mesTextbox.Length - 1
                  	mesTextbox(i).Text = "ligne" & i
                  Next
                  

                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 mars 2011 à 13:57:05

                    Résolu avec
                    TableauDate(i).Text = TXT_DATE.Text
                            TableauPB(i).Text = TXT_NEWPB.Text
                            TableauSite(i).Text = TXT_NEWSITE.Text
                    • Partager sur Facebook
                    • Partager sur Twitter

                    boucle for & tableau

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown