Option Strict On Public Class Form1 Dim MonPoint As Point Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load 'j'ai créé un UserControl1 (projet/ajouter un controle utilisateur) 'je l'ai placé sur le formulaire form1 'je l'ai appelé UserControlX , c'est donc une instance de UserControl1 'j'abonne par code ce controle à un événement MouseDown AddHandler UserControlX.MouseDown, AddressOf AjouteInstance End Sub Private Sub AjouteInstance(sender As Object, e As MouseEventArgs) 'clic avec le bouton de droite = création d'une instance de mon UserControl1 If e.Button = Windows.Forms.MouseButtons.Right Then 'mémorisation de la position du clic gauche MonPoint = New Point(e.X + Me.Left + SystemInformation.BorderSize.Width, _ e.Y + Me.Top + SystemInformation.CaptionHeight) 'instance d'un usercontrol1 Dim MonPremierUC1 As UserControl1 = New UserControl1 With MonPremierUC1 'on lui donne les même coordonnées que UserControlX (sender) .Bounds = DirectCast(sender, UserControl1).Bounds 'on peut le nommer .Name = "baba" End With 'on l'abonne à l'événement MouseMove commun AddHandler MonPremierUC1.MouseMove, AddressOf MonControle_MouseMove 'on l'ajoute au formulaire Me.Controls.Add(MonPremierUC1) 'on le met en avant plan pour pouvoir le faire bouger MonPremierUC1.BringToFront() End If End Sub Private Sub MonControle_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) 'clic avec le bouton de gauche = déplacement If e.Button = Windows.Forms.MouseButtons.Left Then 'déplacement du controle en se servant de la position du curseur DirectCast(sender, UserControl1).Location = Point.Subtract(Cursor.Position, New Size(MonPoint)) End If End Sub End Class
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionA quelle moment, le controle est dispo ? Apres l'enregistrement ???