Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Déplacer un Boutton !!

1 réponse
Avatar
Sim
Bonjour a tous,

Dans un de mes formulaire j'ai un FlowLayoutPanel composer de boutton a
l'intérieur
J'aimerai pouvoir deplacer c'est boutton dans un autre FlowLayoutPanel.

Est-ce que cela est possible ?? car, quand je demarre mon programme et que
je clique sur mon boutton et bien comme de raison il ne bouge pas. (j'ai cru
comprendre qu'il faut placer du code dans le Boutton1_MouseDown ou quelque
chose dans le genre)
Merci de votre aide !

1 réponse

Avatar
Alain
Bonjour,

La methode la plus simple est de le faire en une seule fois avec du drag
drop
Mais comme je crois que l'on ne peux pas le faire directement avec des
objets, il faut ruser en employant le nom de l'objet.
Donc :
Sur chaque bouton , faire un DoDragDrop sur son mousedown avec en
parametre le button.name
If e.Button = Windows.Forms.MouseButtons.Left Then
MonButton.DoDragDrop(CStr(MonButton.Name), DragDropEffects.Move)
End If

Sur le panel d'arrivee faire un dragenter
If e.Data.GetData(System.Windows.Forms.DataFormats.Text) <> "" Then
e.Effect = DragDropEffects.Move
Else
e.Effect = DragDropEffects.None
End If

Sur le panel d'arrivee faire un dragdrop avec une boucle for each sur le
controle de depart Private Sub
FlowLayoutPanel2_DragDrop(ByVal sender As Object, ByVal e As
System.Windows.Forms.DragEventArgs) Handles FlowLayoutPanel2.DragDrop
Dim mastr As String
mastr = e.Data.GetData(System.Windows.Forms.DataFormats.Text)
'Recupere le nom du controle
Dim ctr As Control
For Each ctr In Me.FlowLayoutPanel1.Controls
If ctr.Name = mastr Then
ctr.Parent = Me.FlowLayoutPanel2 ' Deplace le controle dans
le panel
Exit Sub
End If
Next
End Sub

Ne pas oublier de modifier le allowdrop de chaque panel

Voila, cela devrait fonctionner
Bon courage