Danke für die schnelle Antwort!
Ja es soll sozusagen ein Rechteck gezeichnet werden und die darin befindlichen Controls
so verschieben wie man die Maus bewegt.
Public Class Form1
Private firstklick As Boolean = False
Private verschieben As Boolean = False
Private strg As Boolean = False
Private pn As Panel
Private oldx As Integer
Private oldy As Integer
Private xm As Integer
Private ym As Integer
Private clist As List(Of Control) = New List(Of Control)
Private Sub StartToolStripMenuItem1_Click(sender As Object, e As EventArgs) _
Handles StartToolStripMenuItem1.Click
strg = True
End Sub
Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles _
Me.MouseDown
If Not strg Then Return
If clist.Count > 0 Then
For Each c As Control In clist
Highlighter1.SetHighlightColor(c, _
DevComponents.DotNetBar.Validator.eHighlightColor.None)
Next
End If
clist.Clear()
xm = e.X
ym = e.Y
pn = New Panel
With pn
.Location = New Point(xm, ym)
.BorderStyle = BorderStyle.FixedSingle
End With
oldx = xm
oldy = ym
firstklick = True
End Sub
Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles _
Me.MouseMove
If firstklick Then
xm = e.X
ym = e.Y
With pn
.Size = New Size(xm - oldx, ym - oldy)
.Visible = True
End With
Controls.Add(pn)
End If
End Sub
Private Sub Form1_MouseUp(sender As Object, e As MouseEventArgs) Handles _
Me.MouseUp
If Not strg Then Return
For Each c As Control In Controls
If TypeOf c IsNot Panel Then
If c.Location.X > oldx And c.Location.Y > oldy AndAlso _
c.Location.X < xm And c.Location.Y < ym Then
clist.Add(c)
End If
End If
Next
For Each c As Control In clist
Highlighter1.SetHighlightColor(c, _
DevComponents.DotNetBar.Validator.eHighlightColor.Blue)
Next
firstklick = False
strg = False
Me.Controls.Remove(pn)
End Sub
Private Sub MoseDwonAll(sender As Object, e As MouseEventArgs) Handles _
TextBox2.MouseDown, TextBox1.MouseDown, Label2.MouseDown, _
Label1.MouseDown, Button2.MouseDown, Button1.MouseDown
verschieben = True
End Sub
Private Sub MouseMoveAll(sender As Object, e As MouseEventArgs) Handles _
TextBox2.MouseMove, TextBox1.MouseMove, Label2.MouseMove, _
Label1.MouseMove, Button2.MouseMove, Button1.MouseMove
If Not verschieben Then Return
End Sub
Private Sub MouseUpAll(sender As Object, e As MouseEventArgs) Handles _
TextBox2.MouseUp, TextBox1.MouseUp, Label2.MouseUp, Label1.MouseUp, _
Button2.MouseUp, Button1.MouseUp
verschieben = False
End Sub So sieht mein Code derzeit aus, ich zeichne mithilfe meiner Maus ein Panel. Und die Controls die sich eben in diesem Panel Befinden sollen einen Highlighter bekommen damit es erkenntlich wird.
Diese Controls werden in eine Liste gespeichert damit man auf sie zugreifen kann.
Nun ist meine Frage wie ich alle Controls verschieben kann, aber die proportionen also die Abstände zwischen den Controls beibehalten kann |