Panel mit Click-Event in Form bewegen
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von joshi97.
-
-
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
RodFromGermany schrieb:
Danke trotzdem vorerst -
Mal sehen, ob ich Dich richtig verstanden habe:
Ich (Du natürlich) habe ein Programm im Vollbild. Wenn ich mit der Maus da reinklicke, soll ein (vorhandenes) Panel an genau der Stelle erscheinen, wo ich hingeklickt habe.
Wenn Du ein neues Panel ersgtellen willst, ist da noch ein wenig mehr zu tun.Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
Ich glaube erst meint noch was anderes
soweit ich es verstanden habe, soll das panel mit der Maus willkürlich verschoben werden können, oder?
nun dazu musste live die mausposition auslesen, wenn auf das panel geklickt wird und dann die Position des panels anpassen, such mal bei Google nach mmvisual Basic mausposition -
Falls ja: Nimm mein letztes Beispiel und trage den Code in das MouseMove-Event ein.Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
-
-
@joshi97: Wer lesen kann, ist im Vorteil.
Probiere bitte in einem kleinen Testprogramm folgende beiden Zeilen aus:
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
ErfinderDesRades schrieb:
@joshi97: Wer lesen kann, ist im Vorteil.Probiere bitte in einem kleinen Testprogramm folgende beiden Zeilen aus:
Visual Basic Quellcode
1 Private Sub Form1_MouseDown(sender As System.Object, e 2 As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
3 'Button1.Location = New Point(Cursor.Position.X, Cursor.Position.Y)
4 Button1.Location = e.Location
5 End Sub
Auch an dich wenn ich dies probiere kommt der button ja dahin wo ich klicke aber ich möchte WIE EINE FORM das Panel bewegen könnenDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „joshi97“ ()
-
sowas? Controls draggen
oder normalerweise nimmt man MDI für sowas, aber dann haben die verschiebbaren inneren Forms einen Titelbalken zum Anfassen. -
MySide schrieb:
Ich glaube erst meint noch was anderes
soweit ich es verstanden habe, soll das panel mit der Maus willkürlich verschoben werden können, oder?
nun dazu musste live die mausposition auslesen, wenn auf das panel geklickt wird und dann die Position des panels anpassen, such mal bei Google nach mmvisual Basic mausposition
les es dir bitte nochmal durch -
@joshi97: Irgendwie reden wir alle aneinander vorbei.
Solange Du Dein Problem nicht korrekt rübergebracht hast, hat das Aufschreiben von Code-Snippets absolut keinen sinn.
Also:
- Du willst ein Objekt anfassen und auf der Form mit der Maus bewegen?
- Du willst klicken und ein vorhandenes Objekt soll da positioniert werden?
- Du willst klicken und ein neues Objekt soll da positioniert werden?
oder noch was ganz anderes?Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
Also nochmal zum Mitdenken
- ich habe eine Form (siehe bild)
- Dort ist ein Panel mit [2labels und einer textbox] (Also alles in einem) (siehe Bild)
- So jetzt möchte ich auf eine freie Fläche des Panels klicken und auch halten
- und dann auch die maus in der Form bewegen
- Also das dieses Panel(Notiz1) in der Form bewegen und beliebeig platzieren (wie wenn man eine Form bewegt)
wenn jetzt noch immer niemand weiß was ich meine schreib nachricht
Achtung in diesem Bild sind Notiz 1 und 2 eingekreist meine aber nur notiz 1
Und Notiz 1 und Notiz 2 sind eigene Panel -
-
post#11 nochmal genau lesen. Vlt auch mal auf den Link klicksen.
@SystemUnknown: Standard-D&D ist eine etwas annere Funktionalität. -
ErfinderDesRades schrieb:
post#11 nochmal genau lesen. Vlt auch mal auf den Link klicken.
VB.NET-Quellcode
- Public Class Form1
- Private _GrabOffs As Size
- Private _PBoxes As PictureBox()
- Private Sub Control_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
- 'funzt mit allen Controls
- Dim toDrag = DirectCast(sender, Control)
- _GrabOffs = New Size(Control.MousePosition) - New Size(toDrag.Location)
- toDrag.Parent.Controls.SetChildIndex(toDrag, 0)
- End Sub
- Private Sub Control_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
- 'funzt mit allen Controls
- If e.Button <> MouseButtons.Left Then Return
- Dim toDrag = DirectCast(sender, Control)
- RemoveHandler toDrag.MouseMove, AddressOf Control_MouseMove
- toDrag.Location = Control.MousePosition - _GrabOffs
- AddHandler toDrag.MouseMove, AddressOf Control_MouseMove
- End Sub
- Private Sub Form_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
- _PBoxes = Me.Controls.OfType(Of PictureBox)().ToArray
- For Each pb In _PBoxes
- AddHandler pb.MouseDown, AddressOf Control_MouseDown
- AddHandler pb.MouseMove, AddressOf Control_MouseMove
- Next
- End Sub
- End Class
Das ist dein Code aber ich habe keine PictureBox sondern Panel muss ich also überall von PicureBox steht Panel schreiben ??? -
ja, was denkstn du?
Der Post heißt "Controls draggen", und das Draggen von Controls ist am Beispiel von Pictureboxen ausgeführt.
Ich kann das doch nicht ausführen, für jedes Control, wasses gibt. -
ErfinderDesRades schrieb:
ja, was denkstn du?
Der Post heißt "Controls draggen", und das Draggen von Controls ist am Beispiel von Pictureboxen ausgeführt.
Ich kann das doch nicht ausführen, für jedes Control, wasses gibt.
Also ich habe es Probiert und weiß aber nicht wie es gehen soll kannst du den code vlt für Panels noch mal machen bitte ??? -
VB.NET-Quellcode
- Public Class Form1
- Private _GrabOffs As Size
- Private _PBoxes As Panel()
- Private Sub Control_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
- 'funzt mit allen Controls
- Dim toDrag = DirectCast(sender, Control)
- _GrabOffs = New Size(Control.MousePosition) - New Size(toDrag.Location)
- toDrag.Parent.Controls.SetChildIndex(toDrag, 0)
- End Sub
- Private Sub Control_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
- 'funzt mit allen Controls
- If e.Button <> MouseButtons.Left Then Return
- Dim toDrag = DirectCast(sender, Control)
- RemoveHandler toDrag.MouseMove, AddressOf Control_MouseMove
- toDrag.Location = Control.MousePosition - _GrabOffs
- AddHandler toDrag.MouseMove, AddressOf Control_MouseMove
- End Sub
- Private Sub Form_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
- _PBoxes = Me.Controls.OfType(Of Panel)().ToArray
- For Each pb In _PBoxes
- AddHandler pb.MouseDown, AddressOf Control_MouseDown
- AddHandler pb.MouseMove, AddressOf Control_MouseMove
- Next
- End Sub
- End Class
-
Ähnliche Themen
-
3 Benutzer haben hier geschrieben
- Gast (11)
- RodFromGermany (5)
- ErfinderDesRades (5)