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.228 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 Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. |
||||||||||||||||
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. |