Me.Size - was mach ich falsch ;)

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Infinity.

    Me.Size - was mach ich falsch ;)

    Hallo alle zusammen,

    bin neu hier und nach recht unerfahren in VB, aber ich hab hier schon viel hilfreiches gefunden, vielleich kann mir ja jemand mit meinem Problem helfen!
    Hab mal ein Minimalbeispiel gemacht!
    Die Size vom Form1 wird einfach auf den Anfangswert gesetzt, also das speichern in My.Settings.wsize geht, wird aber beim Neustart nicht gesetzt!
    Einfach mal ausprobieren!

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Me.WindowState = My.Settings.wstate
    4. Me.Location = My.Settings.wloc
    5. Me.Size = My.Settings.wsize
    6. End Sub
    7. Private Sub Form1_LocationChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LocationChanged
    8. If Me.WindowState.ToString = "Normal" Then
    9. My.Settings.wloc = Me.Location
    10. My.Settings.Save()
    11. End If
    12. End Sub
    13. Private Sub Form1_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
    14. If Me.WindowState.ToString = "Normal" Then
    15. My.Settings.wsize = Me.Size
    16. My.Settings.Save()
    17. End If
    18. End Sub
    19. Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    20. My.Settings.wstate = Me.WindowState
    21. My.Settings.Save()
    22. End Sub
    23. End Class
    1) VB-Tag richtig benutzen
    2) Du musst im Designer Form.StartPosition.Manual einstellen.

    ich würd nicht in jedem Resize die Settings speichern. Reicht nicht im Form_Closing? Mindestens würdich auf _ResizeEnd gehen.

    Überhaupt, Settings.Save brauchste garnet zu machen, jdfs. wenn inne Projekteigenschaften "My.Settings beim Herunterfahren abspeichern" angehakt ist.
    @ fichz
    DANKE, DANKE!!
    das war der richtige hinweis!


    @ ErfinderDesRades
    zu 1) danke gut zu wissen
    zu 2) StartPosition war bereits auf Manual
    Hab nun die Zuweisung My.Settings.wsize = Me.Size in Form1_ResizeEnd gemacht, ist glaub ich wirklich besser!
    In Form1_FormClosing alles zu machen ist nicht gut, wenn ich das Form1 "Maximized" schließe würden Size und Location falsch gespeichert!
    "My.Settings beim Herunterfahren abspeichern" war ein gute Tipp, danke!


    @ alle
    so funktioniert es, und tut genau das was ich will!!

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Me.WindowState = My.Settings.wstate
    4. Me.Location = My.Settings.wloc
    5. Me.Size = New Size(CType(My.Settings.wsize, Point))
    6. End Sub
    7. Private Sub Form1_LocationChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LocationChanged
    8. If Me.WindowState.ToString = "Normal" Then
    9. My.Settings.wloc = Me.Location
    10. End If
    11. End Sub
    12. Private Sub Form1_ResizeEnd(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.ResizeEnd
    13. If Me.WindowState.ToString = "Normal" Then
    14. My.Settings.wsize = Me.Size
    15. End If
    16. End Sub
    17. Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    18. If Me.WindowState.ToString <> "Minimized" Then
    19. My.Settings.wstate = Me.WindowState
    20. End If
    21. End Sub
    22. End Class
    Ich weiß das Thema ist schon erledigt, aber schau dir mal diesen Artikel an:

    msdn.microsoft.com/de-de/library/wabtadw6(v=vs.85).aspx

    Du musst nicht jede Eigenschaft von deinem Form/Control selbst Speichern sondern kannst es automatisch über den Designer machen.