Mit nachfolgendem Code lässt sich ein Control zur Laufzeit durch den Anwender beliebig innerhalb einer Form verschieben. Erstellen Sie ein neues Windows-Forms-Projekt, platzieren auf die Form eine PictureBox und fügen nachfolgenden Code in den Codeteil der Form ein: Public Class Form1 ' Maus-Koordinaten Dim nStartPos As Point Dim nDragPos As Point Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As _ System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown ' aktuelle Position des Controls und der Maus merken If e.Button = Windows.Forms.MouseButtons.Left Then nStartPos = PictureBox1.Location nDragPos = PictureBox1.PointToScreen(New Point(e.X, e.Y)) End If End Sub Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As _ System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove If e.Button = Windows.Forms.MouseButtons.Left Then ' aktuelle Mausposition bezogen auf den Desktop ermitteln Dim nCurPos As Point = PictureBox1.PointToScreen(New Point(e.X, e.Y)) ' Neue Position des Controls berechnen Dim nNewPos As New Point(nStartPos.X + nCurPos.X - nDragPos.X, _ nStartPos.Y + nCurPos.Y - nDragPos.Y) ' Neue Koordianten prüfen und sicherstellen, dass das Control ' nicht aus den sichtbaren Bereich der Form verschoben wird With nNewPos If .X < Me.ClientRectangle.Left Then .X = Me.ClientRectangle.Left If .X + PictureBox1.Width > Me.ClientRectangle.Right Then .X = Me.ClientRectangle.Right - PictureBox1.Width End If If .Y < Me.ClientRectangle.Top Then .Y = Me.ClientRectangle.Top If .Y + PictureBox1.Height > Me.ClientRectangle.Bottom Then .Y = Me.ClientRectangle.Bottom - PictureBox1.Height End If End With ' Control an neuen Position verschieben PictureBox1.Location = nNewPos End If End Sub End Class Dieser Tipp wurde bereits 23.200 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |