Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load SetMoveable(Button1) SetMoveable(Button2) SetMoveable(Label1) SetMoveable(ListBox1) SetMoveable(CheckBox1) End Sub Dim depart As Point Dim deplacement As Boolean = False Private Sub SetMoveable(ByRef ctl As Control) AddHandler ctl.MouseDown, AddressOf Generic_MouseDown AddHandler ctl.MouseMove, AddressOf Generic_MouseMove AddHandler ctl.MouseUp, AddressOf Generic_MouseUp End Sub Private Sub Generic_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) 'Mémorisation du point de départ depart = e.Location deplacement = True End Sub Private Sub Generic_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) If deplacement Then Dim bt As Control = DirectCast(sender, Control) Dim loc As Point loc.X = bt.Location.X + e.Location.X - depart.X loc.Y = bt.Location.Y + e.Location.Y - depart.Y 'Chargement de la nouvelle position du control bt.Location = loc End If End Sub Private Sub Generic_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) deplacement = False End Sub End Class
Dim départ As Point Dim Dplt As Boolean = False Private Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown 'Mémorisation du point de départ départ = e.Location Dplt = True End Sub Private Sub Button1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseMove If Dplt Then Dim bt As Button = DirectCast(sender, Button) Dim loc As Point loc.X = bt.Location.X + e.Location.X - départ.X loc.Y = bt.Location.Y + e.Location.Y - départ.Y 'Chargement de la nouvelle position du control bt.Location = loc End If End Sub Private Sub Button1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseUp Dplt = False End Sub
Le problème c’est si j’ai 20 objets à déplacé sur une forme il faudra créer autant de foi le code qu’il y a de contrôle.
Après plusieurs jours de recherche je suis tombé sur ce code.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question