Hallo Community,
ich weiß nicht wie ich den Code so umschreiben kann, dass er 2 Buttons die eine bestimmte Position haben via Maus tauschen kann. aber so das die Buttons einrasten wie in einem TableLayoutPanel.
So wie in dem video youtube.com/watch?v=YhyTni6KH0Q
zurzeit hab ich einen code der wen man ein button zieht, kopiert, aber sich nicht mit dem anderen button "vertauschen" lässt
Spoiler anzeigen
Edit by hal2000:
- Topic verschoben
- Code-Tags eingefügt.
ich weiß nicht wie ich den Code so umschreiben kann, dass er 2 Buttons die eine bestimmte Position haben via Maus tauschen kann. aber so das die Buttons einrasten wie in einem TableLayoutPanel.
So wie in dem video youtube.com/watch?v=YhyTni6KH0Q
zurzeit hab ich einen code der wen man ein button zieht, kopiert, aber sich nicht mit dem anderen button "vertauschen" lässt
VB.NET-Quellcode
- Public Class Form1
- Dim Aktion As DragDropEffects ' Hält die gewünschte Aktion fest
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- TableLayoutPanel1.AllowDrop = True ' Drag & Drop zulassen
- End Sub
- Private Sub btnSmall0_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
- Handles Button1.MouseDown
- Dim Btn As Button = DirectCast(sender, Button)
- If Btn.Parent Is Panel1 Then ' Drag & Drop innerhalb des gleichen Panel
- Return
- End If
- If e.Button = MouseButtons.Left Then ' Ist linke Maustaste gedrückt?
- Select Case Control.ModifierKeys
- Case Keys.None ' Copy vom Button
- Aktion = DragDropEffects.Copy
- Case Else ' Sonst
- Aktion = DragDropEffects.None
- Return
- End Select
- Me.DoDragDrop(Btn, Aktion) ' Gewünschte Aktion einstellen
- End If
- End Sub
- Private Sub TableLayoutPanel1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TableLayoutPanel1.DragEnter
- If e.Data.GetDataPresent(GetType(Button)) Then
- e.Effect = Aktion ' Aktion im Mauszeiger anzeigen
- End If
- End Sub
- Private Sub TableLayoutPanel1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TableLayoutPanel1.DragDrop
- Dim Btn As Button
- Dim BtnNeu As New Button
- If e.Data.GetDataPresent(GetType(Button)) Then
- Btn = DirectCast(e.Data.GetData(GetType(Button)), Button)
- If e.Effect = DragDropEffects.Copy Then ' *** Kopieren ***
- BtnNeu.Text = TextBox1.Text ' ... Text
- BtnNeu.Size = Btn.Size ' ... Größe
- '* ?!?!?!? BtnNeu.Location
- TableLayoutPanel1.Controls.Add(BtnNeu) ' Zur Controlsauflistung
- End If
- End If
- End Sub
- End Class
Edit by hal2000:
- Topic verschoben
- Code-Tags eingefügt.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()