Partage
  • Partager sur Facebook
  • Partager sur Twitter

Vb. label visible

Problème

    20 mai 2011 à 12:53:56

    Bonjour a tous et a toutes !
    Alors voila, j'ai un petit problème...
    (J'utilise visual basic express 2008)

    Enfaites j'ai une progressbar et j'aimerai que quand elle soit a 15% Mon label apparaisse ! Avec un seul label c'est simple mais avec plusieurs j'arrive pas.
    Voila mon code (que j'ai mis dans le timer et/ou dans le form) mais ca ne marche pas ca marque que le 1er.

    If Me.ProgressBar1.Value = 15 Then
                Label1.Visible = True
                If Me.ProgressBar1.Value = 25 Then
                    Label2.Visible = True
                    If Me.ProgressBar1.Value = 35 Then
                        Label3.Visible = True
                        If Me.ProgressBar1.Value = 45 Then
                            Label4.Visible = True
                            If Me.ProgressBar1.Value = 55 Then
                                Label5.Visible = True
                                If Me.ProgressBar1.Value = 65 Then
                                    Label6.Visible = True
    
    
                                End If
                            End If
                        End If
                    End If
                End If
            End If
    


    Merci de m'aidez svp ! :D
    • Partager sur Facebook
    • Partager sur Twitter
      20 mai 2011 à 13:48:26

      La tout t'es if son imbriques donc il y a peu de chance que value=15 et que value=25 en meme temps.
      • Partager sur Facebook
      • Partager sur Twitter
        20 mai 2011 à 16:52:14

        Et comment faire alrs stp ?
        • Partager sur Facebook
        • Partager sur Twitter
          20 mai 2011 à 16:59:44

          Dans quel événement a tu mis ça ?
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            20 mai 2011 à 17:00:18

            Mets tous tes if's à la suite, et pas imbriqués...
            • Partager sur Facebook
            • Partager sur Twitter
              20 mai 2011 à 17:04:43

              Voilà le code parfait :
              If Me.ProgressBar1.Value = 15 Then
                          Label1.Visible = True
              			End If
              If Me.ProgressBar1.Value = 25 Then
                          Label2.Visible = True
              		    End If
              If Me.ProgressBar1.Value = 35 Then
                          Label3.Visible = True
              			End If
              If Me.ProgressBar1.Value = 45 Then
                          Label4.Visible = True
              			End If
              If Me.ProgressBar1.Value = 55 Then
                          Label5.Visible = True
              			End If
              If Me.ProgressBar1.Value = 65 Then
                          Label6.Visible = True
                          End If
              


              A bientôt !
              • Partager sur Facebook
              • Partager sur Twitter
                20 mai 2011 à 17:06:30

                Ou utilise un switch (ca doit bien exister en vb?!).
                • Partager sur Facebook
                • Partager sur Twitter
                  20 mai 2011 à 17:11:48

                  Mon code marche tout de même :-° .
                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 mai 2011 à 17:34:52

                    Oui bien sur mais ce cas convient bien a un switch plutot que de passer x if. Mais bon :)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      20 mai 2011 à 19:09:55

                      Je ne sais pas non plus si il y a sur VB.NET Switch ... :) .
                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 mai 2011 à 19:56:08

                        Voila le code en switch

                        Select Case
                              Case Me.ProgressBar1.Value = 15 
                                    Label1.Visible = True
                        			
                              Case Me.ProgressBar1.Value = 25 
                                    Label2.Visible = True
                        		    
                              Case Me.ProgressBar1.Value = 35 
                                    Label3.Visible = True
                        			
                              Case Me.ProgressBar1.Value = 45 
                                    Label4.Visible = True
                        			
                              Case Me.ProgressBar1.Value = 55 
                                    Label5.Visible = True
                        			
                              Case Me.ProgressBar1.Value = 65 
                                    Label6.Visible = True
                         End Select
                        
                        • Partager sur Facebook
                        • Partager sur Twitter
                          20 mai 2011 à 23:43:54

                          Oui c'est possible de l'écrire comme ça, mais en l'état ça vaut à peu près autant qu'une suite de If (à savoir que ProgressBar1.Value sera évalué 6 fois), ce qui est similaire au switch C# ici serait plutôt :
                          Select ProgressBar1.Value
                              Case 15
                                  Label1.Visible = True
                              Case 25
                                  Label2.Visible = True
                              Case 35
                                  Label3.Visible = True
                              Case 45
                                  Label4.Visible = True
                              Case 55
                                  Label5.Visible = True
                              Case 65
                                  Label6.Visible = True
                          End Select
                          

                          Après, cette approche est peu souple, à choisir je "préfèrerais" plus quelque chose du genre :
                          Dim labelName As String = "Label" & (ProgressBar1.Value \ 10).ToString
                          Dim ctrlLabel As Control = Me.Controls(labelName)
                          If ctrlLabel IsNot Nothing Then ctrlLabel.Visible = True
                          

                          Néanmoins cette approche est toujours un peu bancale (elle repose sur le fait que les contrôles se nomment "Label#" ; il serait peut-être plus judicieux de faire un tableau de Label et d'en récupérer l'indice avec une méthode similaire. J'avoue que comme je perçoit pas l'intérêt "d'allumer" 6 Label au fur et à mesure de la progression je ne sais pas trop comment je l'aborderais :lol:

                          Cordialement !
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Censément, quelqu'un de sensé est censé s'exprimer sensément.

                          Vb. label visible

                          × 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