Private lastmouselocation As Point 'choice1 c'est chez toi 1 Private Sub choice1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles choice1.Click Dim mylabel As New Label With mylabel .Font = New Font("arial", 12, FontStyle.Bold) .Text = "BLABLA" .BorderStyle = BorderStyle.Fixed3D .Location = New Point(10, 60) .Visible = True End With Me.Controls.Add(mylabel) AddHandler mylabel.MouseMove, AddressOf labelmousemove AddHandler mylabel.MouseDown, AddressOf labelmovedown End Sub Private Sub labelmovedown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) lastmouselocation = e.Location End Sub Private Sub labelmousemove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Dim ptlabel As New Point ptlabel = e.Location If e.Button = Windows.Forms.MouseButtons.Left Then DirectCast(sender, Label).Left += e.Location.X - lastmouselocation.X DirectCast(sender, Label).Top += e.Location.Y - lastmouselocation.Y End If End Sub
Mais j'arrive pas à comprendre le "choice1 c'est chez toi 1 "
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionOption Strict On Public Class Form1 'déclaration du label à déplacer Dim MonLabel As Label 'déclaration d'un point servant de base au déplacement Dim MonPoint As Point 'observe qu'on peut abonner tous les toolstrip au même événement avec Handles Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles ToolStripMenuItem2.Click, _ ToolStripMenuItem3.Click 'instance d'un label en récupérant son texte depuis ton toolstrip MonLabel New Label With {.Text DirectCast(sender, ToolStripMenuItem).Text, _ .BackColor = Color.Pink, _ .Location = New Point(15, 30), _ .BorderStyle = BorderStyle.FixedSingle } 'ajout des abonnements aux événements Mouse... AddHandler MonLabel.MouseDown, AddressOf MonLabelMouseDown AddHandler MonLabel.MouseMove, AddressOf MonLabelMouseMove 'ajout au formulaire Me.Controls.Add(MonLabel) End Sub Private Sub MonLabelMouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) 'au clic gauche, on récupère un point de base If e.Button = Windows.Forms.MouseButtons.Left Then 'on ré-attibue ici MonLabel au contrôle à déplacer 'ceci permet de reprendre n'importe quel label pour le déplacer à nouveau MonLabel = DirectCast(sender, Label) 'récupération du point de base MonPoint = e.Location End If End Sub Private Sub MonLabelMouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) 'au déplacement(bouton gauche enfoncé) on calcule le point du label en se servant de Point.Subtract If e.Button = Windows.Forms.MouseButtons.Left Then MonLabel.Location = Point.Subtract(Cursor.Position, _ New Size(Me.Left + MonPoint.X, _ Me.Top + MonPoint.Y + SystemInformation.CaptionHeight)) End If End Sub End Class
Me.Controls.Add(mylabel) mylabel.BringToFront()
Me.Controls.Add(MonLabel) MonLabel.BringToFront()