Form Öffnen und an Anderer Form Fixieren

  • VB.NET
  • .NET (FX) 4.0

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Pasta.

    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @xX-Nick-Xx Du musst die Location des Slave-Dialogs bei Move und Resize des Master-Dialogs nachziehen.
    Achte auf Minimize.
    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!
    Hab es nun so Gelöst :D

    VB.NET-Quellcode

    1. Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
    2. If Button7.Text = ("►") Then
    3. Me.Size = New Size(1059, 761)
    4. Button7.Text = ("◄")
    5. Else
    6. Button7.Text = ("►")
    7. Me.Size = New Size(714, 761)
    8. End If
    9. End Sub


    Danke für eure Hilfe :)

    Das ergibt aber nur bei vorgegebener Formgröße Sinn, du verbaust dir jegliche Flexibilität.
    Sei es drum. :D
    Irgendeinen Status über Control.Name abzufragen ist nicht gut, ich habe das ganze mal mit einer Property gelöst.:

    Code

    VB.NET-Quellcode

    1. Public Class FormMain
    2. Private defaultFormWidth As Integer = 430
    3. Private extenderWidth As Integer = 200
    4. Private _formExtended As Boolean = False
    5. Private Property FormExtended() As Boolean
    6. Get
    7. Return _formExtended
    8. End Get
    9. Set(value As Boolean)
    10. _formExtended = value
    11. ToggleFormExtender(extenderWidth)
    12. End Set
    13. End Property
    14. Private Sub ToggleFormExtender(ByVal ExWidth As Integer)
    15. If FormExtended Then
    16. Width = Width + ExWidth
    17. PanelExtendedForm.Width = ExWidth
    18. Else
    19. Width = Width - ExWidth
    20. PanelExtendedForm.Width = 0
    21. End If
    22. End Sub
    23. Private Sub FormMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    24. Width = defaultFormWidth
    25. With ButtonToggleEx
    26. .Width = 23
    27. .Height = 23
    28. .Text = "►"
    29. End With
    30. PanelExtendedForm.BackColor = SystemColors.ActiveCaption
    31. FormExtended = My.Settings.FormExtended
    32. LabelStatusEx.Text = _formExtended.ToString
    33. End Sub
    34. Private Sub ButtonToggleEx_Click(sender As Object, e As EventArgs) Handles ButtonToggleEx.Click
    35. If FormExtended Then
    36. ButtonToggleEx.Text = "►"
    37. FormExtended = False
    38. Else
    39. ButtonToggleEx.Text = "◄"
    40. FormExtended = True
    41. End If
    42. LabelStatusEx.Text = _formExtended.ToString
    43. End Sub
    44. Private Sub FormMain_Resize(sender As Object, e As EventArgs) Handles Me.Resize
    45. If FormExtended Then
    46. ButtonToggleEx.Location = New Point((Width - extenderWidth - 48), 12)
    47. Else
    48. ButtonToggleEx.Location = New Point((Width - 48), 12)
    49. End If
    50. End Sub
    51. End Class


    Das ist wesentlich flexibler, z.B. kann jederzeit der Status als Boolean abgefragt werden.
    edit: Ich habe es nochmal leicht überarbeitet und eine Testsolution angehängt.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Pasta“ ()