Partage
  • Partager sur Facebook
  • Partager sur Twitter

Faire + 1 à une location ..

Excusez mon manque de language .

Sujet résolu
    10 août 2011 à 12:33:46

    Bonjour à tous ,

    ceux qui voyent qui je suis sauront que je suis tout ce qu'il y a de plus nouveau sur le site du zero ..
    Et j'aimerai vous demander comment incrémenter 1 à une location ..
    Je m'explique je voudrai que quand je clique sur le bouton Gauche , ma picture Box se déplace vers la gauche avec ce code :

    "
    Private Sub Gauche_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GAUCHE.Click
    
           [ AIDEZ-MOI ]
    
        End Sub "
    

    Merci à vous les Zéros :)
    • Partager sur Facebook
    • Partager sur Twitter
      10 août 2011 à 12:48:10

      Bonjour,

      L'attribut Location est un Point, non ?

      Donc quelque chose comme :
      TaPictureBox.Location = New Point(x, y)
      


      Aussi, la prochaine fois que tu as une question du même type, n'oublie pas de regarder sur la MSDN :) .
      • Partager sur Facebook
      • Partager sur Twitter
        10 août 2011 à 12:50:35

        Je ne connaissais la pas MSDN , merci .
        Mais en faite , j'aurai besoin juste d'ajouter 1 à X .. et a ne pas avoir à changer la location à chaque fois .
        • Partager sur Facebook
        • Partager sur Twitter
          10 août 2011 à 13:14:08

          Et bien tu récupères le X (TaPictureBox.Location.X) de la location et tu fais + 1. Quant au Y, tu le laisse comme il est (TaPictureBox.Location.Y).
          • Partager sur Facebook
          • Partager sur Twitter
            10 août 2011 à 13:17:43

            Guillaume tu m'aider MP ?
            ( ou sinon me mettre un <code> comme tout à l'heure , je t'avoue n'avoir rien compris :/ )
            PS : en gros je veux faire " A chaque fois que je clique sur ce bouton , X augmente de 1 "
            • Partager sur Facebook
            • Partager sur Twitter
              10 août 2011 à 13:28:01

              Pourquoi ne pas t'aider ici, ça pourra profiter à d'autres comme ça :) .

              D'après ce que j'ai compris par MP, tu veux seulement incrémenter X sans faire bouger la fenêtre ? Si c'est ça, il faut que tu récupères X dans une autre variable et ensuite tu incrémentes cette dernière à chaque fois que tu le souhaites.

              Sinon, tu fais comme je t'ai dis plus haut :
              • Tu récupères X et tu l'incrémentes
              • Tu récupères Y sans y toucher
              • Tu instancies un nouvel objet Point en lui passant X et Y
              • Et pour finir tu fixes la Location de ta PictureBox au nouveau Point

              Ce n'est pas trop difficile, tu devrais y arriver. Si ce n'est pas le cas, dis moi ce que tu comprends pas :) .
              • Partager sur Facebook
              • Partager sur Twitter
                10 août 2011 à 13:31:54

                C'est super sympa à toi , alors ce que je comprend pas c'est comment récupérer X ?
                Je met : " MaPictureBox.Location.X = +1 " et la ça me met une erreur :'(
                Sinon , comment donner la valeur X à une variable ?
                Est-il possible d'avoir un exemple avec les deux cas possibles ?
                Désolé de t'embêter , je débute juste ( 3 semaines ) et j'ai pas encore tout saisi :ninja:

                • Partager sur Facebook
                • Partager sur Twitter
                  10 août 2011 à 13:39:56

                  Pour récupérer X, tu fais tout simplement TaPictureBox.Location.X. Le truc, c'est que tu ne peux pas modifier directement X car cette propriété est en ReadOnly (lecture seule).

                  Donc pour pouvoir modifier X, tu dois modifier la Location (X et Y). Tu fais ça avec la classe Point.
                  TaPictureBox.Location = New Point(x, y)
                  


                  Pour ta deuxième question : tu as deux variables, Dim a As Integer = 1 et Dim b As Integer = 3, comment fais-tu pour que a val b ?
                  Tout simplement a = b, tu le savais, hein :p ? Et bien tu fais pareil sauf que à la place de b ça sera Location.X

                  EDIT : Point a besoin de X et de Y. Tu as bon, tu dois juste spécifier X et Y dans les parenthèses de Point.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    10 août 2011 à 13:43:18

                    Citation : Guillaume21

                    Le truc, c'est que tu ne peux pas modifier directement X car cette propriété est en ReadOnly (lecture seule).


                    Pour être exact X n'est pas en lecture seule, mais un Point est une structure donc l'objet Point renvoyé par TaPictureBox.Location est une copie de la position de la PictureBox. Modifier la propriété X de cette copie n'aurait donc aucun effet sur la position du contrôle, d'où la nécessité d'assigner une nouvelle valeur à la propriété Location ;)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      10 août 2011 à 13:45:51

                      Citation : Orwell

                      Citation : Guillaume21

                      Le truc, c'est que tu ne peux pas modifier directement X car cette propriété est en ReadOnly (lecture seule).


                      Pour être exact X n'est pas en lecture seule, mais un Point est une structure donc l'objet Point renvoyé par TaPictureBox.Location est une copie de la position de la PictureBox. Modifier la propriété X de cette copie n'aurait donc aucun effet sur la position du contrôle, d'où la nécessité d'assigner une nouvelle valeur à la propriété Location ;)


                      Autant pour moi, j'ai toujours cru voir un "ReadOnly" dans la description, en effet, il n'y en a pas :-° .
                      Merci de la correction et de l'explication :) .
                      • Partager sur Facebook
                      • Partager sur Twitter
                        10 août 2011 à 13:47:17

                        Comment incrémenter ma variable X ?
                        Puisque quand je met "_X = +1" dans mon évenement il me disent une erreur ?

                        PS : Quand je met : MaPictureBox.location = new point ( _X , _Y ) c'est bon ? ( _X et _Y sont mes variables contenant mes posistions .)
                        PS : Mon code :

                        Dim _X As Point
                            Dim _Y As Point
                        
                            Private Sub Gauche_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GAUCHE.Click
                        
                                _X = +1
                                _Y = _Y
                        
                                PictureBox.Location = New Point(_X, _Y)
                        
                            End Sub
                        
                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 août 2011 à 13:51:19

                          Relis mon post et celui de Orwell, on a tout dit :-° .
                          Dim nouvelleLocation As New Point(TaPictureBox.Location.X + 1, TaPictureBox.Location.Y)
                          
                          • Partager sur Facebook
                          • Partager sur Twitter
                            10 août 2011 à 13:55:13

                            D'accord , j'essaye avec ton code et j'ai ça : Une erreur s'est produite lors de la création du formulaire. Pour plus d'informations, consultez Exception.InnerException. L'erreur est : La référence d'objet n'est pas définie à une instance d'un objet.

                            PS : Que dois-je déclarer dans les parenthèses de new point ? la variables nouvellelocation ?

                            EDIT : Jai compris ça y est ! Merci à tous il suffit de dire : "Tristepin.Location.X + 1, Tristepin.Location.Y" dans les parenthèse de new point , merci à tous .
                            • Partager sur Facebook
                            • Partager sur Twitter
                              10 août 2011 à 14:11:26

                              De rien, oublie pas de passer en résolu ;) .
                              • Partager sur Facebook
                              • Partager sur Twitter
                                10 août 2011 à 15:46:41

                                Normal que ça fonctionne pas ton = +1

                                le + va avant le =!

                                += 1

                                Mais pour le point oui, il faut faire comme tu à fait, comme Orwell l'as dit.

                                • Partager sur Facebook
                                • Partager sur Twitter

                                Faire + 1 à une location ..

                                × 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