Form ersetzen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Snaptu.

    Hallo Leute

    ich habe nun schon im Internet geschaut und selbst überlegt, aber noch keine Lösung gefunden.
    Ich möchte gerne mehrere Formen haben, und zwischen denen wechseln (Öffnen und Schließen) , was an sich keine Herausforderung, aber ich möchte gerne das Form1, Form2 von der Größe und Position 1:1 ersetzt. Soweit ist es auch noch keine Herausforderung, würde beim Öffnen über das Menü von Form2 einfach die Position und Größe über My.Settings speichern und in Form2 nach den Daten Laden, aber wenn ich die Form1 bei Win7 - Win10 rechts an die Seite ziehe und andocke, soll er das auch übernehmen und die Form2 genauso laden.

    Vielleicht gibt es da einen bestimmten Begriff, den man einfach Googlen muss oder einen Befehl, bin aber noch nicht drauf gekommen.
    Willkommen im Forum. :thumbup:

    Hoffy schrieb:

    bestimmten Begriff
    Du suchst modale und nicht modale Dialoge.
    Ein modaler Dialog blockiert den aufrufenden Dialog so lange, bis er geschlossen wird.
    Ein nicht modaler Dialog gestattet die parallele Bedienung mehrerer Dialoge.
    Gugst Du hier.
    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!
    Vielen Dank für die schnelle Antwort, aber das ist leider nicht das was ich gesucht habe.
    Ich möchte die Größe und Position von Form1 beim Start von Form2 1:1 übertragen, auch wenn Form1 Vollbild ist, oder Rechts/Links an der Seite angedockt ist, dann soll Form2 beim Öffnen auch in Vollbild sein, oder an den Seiten angedockt sein, oder eben einfach nur die Position und Größe von Form1 übernommen haben.
    Ein nicht modaler Dialog gestattet die parallele Bedienung mehrerer Dialoge.


    Deine Geschwindigkeit zufolge in der du geantwortet hast denke ich das du das ganze nicht ganz verstanden hast. Soweit ich weiß kann man dein vorhaben mit solch Dialogen sehrwohl gestalten.
    Du könntest uns auch einfach verraten wieso du hinter einem Dialog immer ein zweites Form hinterherschieben willst? klingt nämlich irgendwie sehr komisch was du da machst.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    Habe es nun so gemacht:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. My.Settings.OpenSize = Me.Size
    4. My.Settings.OpenPosition = Me.Location
    5. My.Settings.Save()
    6. Form2.Show()
    7. Me.Close()
    8. End Sub
    9. End Class



    VB.NET-Quellcode

    1. Public Class Form2
    2. Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Me.Size = New System.Drawing.Size(My.Settings.OpenSize)
    4. Me.Location = New Point(My.Settings.OpenPosition)
    5. End Sub
    6. End Class

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Hoffy“ ()

    Hoffy schrieb:

    VB.NET-Quellcode

    1. Form2.Show()
    Gugst Du noch mal hier.
    Es wäre vorteilhaft, wenn Du das verstehen würdest, bevor Du weiter machst.
    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!
    Hallo @Hoffy,

    Zuerst mal was ist mit der ausage von Snaptu, möglicherweise gibt es ja eine bessere lösung

    Snaptu schrieb:

    verraten wieso du hinter einem Dialog immer ein zweites Form hinterherschieben willst?


    Außerdem würde ich das an deiner Stelle nicht über My.settings lösen sondern Die info direkt übergeben. Hier mal eine quick and dirty lösung:
    Form1

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Form2.übergabe(Me.Size, Me.Location)
    4. Me.Hide
    5. End Sub
    6. End Class

    Form2

    VB.NET-Quellcode

    1. Public Class Form2
    2. Public Sub übergabe(groeße As Drawing.Size, position As Point)
    3. Me.Size = groeße
    4. Me.Location = Position
    5. Me.Show
    6. End Sub
    7. End Class


    LG Ruerte
    Unfortunately, this Signature is not available in Germany because it may contain music for which GEMA
    has not granted the respective music rights. Sorry about that.

    Vielen Dank Ruerte für die Antwort, die Lösung gefällt mir auch gleich viel besser als meine (Was auch nur als Beispiel gedacht war, damit man besser versteht was ich möchte), ich dachte nur das es da noch eine spezielle Eigenschaft oder sowas gibt, aber so bin ich auch zufrieden.

    Ruerte schrieb:

    Zuerst mal was ist mit der ausage von Snaptu, möglicherweise gibt es ja eine bessere lösung
    Snaptu schrieb:
    verraten wieso du hinter einem Dialog immer ein zweites Form hinterherschieben willst?


    Bin der Meinung, das ich nichts von einer zweiten form die ich hinterherschieben möchte geschrieben habe.