none
creer un sub pour cliquer sur mes control labels RRS feed

  • Question

  • j,ai utilisé le code suivant

    For i As Integer = 1 To 4
                Dim lbl As Label = CType(Me.Controls.Find("Label" & i, False)(0), Label)
                lbl.Image = b
            Next

     

    afin de  disposer mes contols  labels

    maintenant j,aimerais  pouvoir cliquer sur  ces controls afin de les déplacer ou je veudx sur la forme

    merci

    vendredi 16 décembre 2011 21:46

Réponses

  • Bonjour,

    Ce que vous cherchez à faire rentre dans le cas du pattern Drag and Drop.

    Une solution consisterait en les actions suivantes :

    1. Mettre la propriété AllowDrop de votre form, ou du contrôle sur lequel on est sensé déposer les labels, à True
    2. Associer le handler suivant à l’évènement DragEnter de votre  form ou du contrôle sur lequel on est sensé déplacer les labels :
          
      Private Sub Form1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) 
              e.Effect = DragDropEffects.Move
          End Sub
      

    3. Associer le handler suivant à l’évènement MouseDown de tous vos labels : 
          
      Private Sub label_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) 
              Dim lab As Label = sender
              lab.DoDragDrop(lab, DragDropEffects.Move)
          End Sub
      

    4. Associer le handler suivant à l’évènement MouseDown de tous vos labels : 
         
       Private Sub label_GiveFeedback(ByVal sender As System.Object, ByVal e As System.Windows.Forms.GiveFeedbackEventArgs)
              Dim lab As Label = sender
              lab.Location = New Point(MousePosition.X - Me.Location.X - lab.Width / 2, MousePosition.Y - Me.Location.Y - 2 * lab.Height)
          End Sub
      

      Pour l'association des deux précédent handlers à vos labels modifier votre code de la façons suivante : 
            
             For i As Integer = 1 To 4
                  Dim lbl As Label = CType(Me.Controls.Find("Label" & i, False)(0), Label)
                  AddHandler lbl.MouseDown, AddressOf label_MouseDown
                  AddHandler lbl.GiveFeedback, AddressOf label_GiveFeedback
                  lbl.Image = b
              Next
      

     

    Cordialement.


    • Modifié Ould MouradEditor samedi 17 décembre 2011 00:12
    • Marqué comme réponse clo1951 samedi 17 décembre 2011 18:55
    samedi 17 décembre 2011 00:08
    Auteur de réponse

Toutes les réponses

  • Bonjour,

    Ce que vous cherchez à faire rentre dans le cas du pattern Drag and Drop.

    Une solution consisterait en les actions suivantes :

    1. Mettre la propriété AllowDrop de votre form, ou du contrôle sur lequel on est sensé déposer les labels, à True
    2. Associer le handler suivant à l’évènement DragEnter de votre  form ou du contrôle sur lequel on est sensé déplacer les labels :
          
      Private Sub Form1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) 
              e.Effect = DragDropEffects.Move
          End Sub
      

    3. Associer le handler suivant à l’évènement MouseDown de tous vos labels : 
          
      Private Sub label_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) 
              Dim lab As Label = sender
              lab.DoDragDrop(lab, DragDropEffects.Move)
          End Sub
      

    4. Associer le handler suivant à l’évènement MouseDown de tous vos labels : 
         
       Private Sub label_GiveFeedback(ByVal sender As System.Object, ByVal e As System.Windows.Forms.GiveFeedbackEventArgs)
              Dim lab As Label = sender
              lab.Location = New Point(MousePosition.X - Me.Location.X - lab.Width / 2, MousePosition.Y - Me.Location.Y - 2 * lab.Height)
          End Sub
      

      Pour l'association des deux précédent handlers à vos labels modifier votre code de la façons suivante : 
            
             For i As Integer = 1 To 4
                  Dim lbl As Label = CType(Me.Controls.Find("Label" & i, False)(0), Label)
                  AddHandler lbl.MouseDown, AddressOf label_MouseDown
                  AddHandler lbl.GiveFeedback, AddressOf label_GiveFeedback
                  lbl.Image = b
              Next
      

     

    Cordialement.


    • Modifié Ould MouradEditor samedi 17 décembre 2011 00:12
    • Marqué comme réponse clo1951 samedi 17 décembre 2011 18:55
    samedi 17 décembre 2011 00:08
    Auteur de réponse
  • j,utilise  ce code pour placer  7 label sur  une forme

    For

     

    i As Integer = 1 To

    7

     

    Dim lbl As Label = CType(Me.Controls.Find("label" & i, False)(0), Label

    )

    lbl.ImageIndex = 0

    lbl.Left = z(0)

     

    For a = 1 To

    150

    lbl.Left = lbl.Left + 1

    z(0) = lbl.Left

     

    Next

     

    Me

    .Refresh()

     

    Next

    je veux maintenant  pouvoir cliquer sur mes controle labels

    pour les deplacer sur  la forme en glisser deposer

    je n,arrive pas  a creer cette  sub

    merci pour l,aide

    clo1951

     

     
    • Fusionné Michel K dimanche 18 décembre 2011 17:10 Doublon
    samedi 17 décembre 2011 02:06
  • merci  beaucoup  ce  code m,aide enormément

    ca fonctionne tres  bien

    clo1951

    samedi 17 décembre 2011 18:58
  • Bonjour,

    Je pense que cette discussion rejoint http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/dd7d722f-c346-433d-a0c6-bb4ecafae929 ?

     

    A bientot


    Cordialement,
    Xavier TALOUR
    Alias Troxsa SendMail
    Voir le profil de Xavier TALOUR sur LinkedIn
    dimanche 18 décembre 2011 15:26
    Auteur de réponse
  • Bonjour,

    J'ai fusionné les deux sujets qui semblent être les mêmes.

    Merci de créer un seul sujet par problème, si un souci spécifique et différent de celui-ci persiste, vous pouvez ouvrir un nouveau thread.

    Bonne soirée !


    N'hésitez pas à poser des questions si un problème subsiste ou quelque chose n'est pas clair. Dans l'autre cas, veuillez indiquer que le problème est résolu. Cordialement - Best Regards. Contact
    dimanche 18 décembre 2011 17:11