Fragen zur Steuerung ohne Border Style

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Gonger96.

    Fragen zur Steuerung ohne Border Style

    Hi Leute,
    Mein Pogramm ist Ohne BorderStyle und jetzt habe ich paar Fragen dazu,

    1. Mit dem BorderStyle kann man das Pogramm z.b an die Seite siehen und es wird angepasst
    Wie mache ich das das auch ohne BorderStyle geht

    2.Mit BorderStyle konnte man die Größe Verändern
    Wie mache ich das jetzt ohne ?
    2. Du könntest das mit kleinen Buttons machen :)
    Also die Form soll dann von 0;0 bis zu den Koordinaten sein, wo die Maus sich gerade befindet. Das Ganze im KeyDown-Event für einen Linksklick z.B :)

    Beispiel: Formgröße = 20;20 ButtonKlick und halten.
    Size: von 0 bis z.B 50 & von 0 bis 60. (50/60)

    LaMiy schrieb:

    2. Du könntest das mit kleinen Buttons machen :)
    Also die Form soll dann von 0;0 bis zu den Koordinaten sein, wo die Maus sich gerade befindet. Das Ganze im KeyDown-Event für einen Linksklick z.B :)

    Beispiel: Formgröße = 20;20 ButtonKlick und halten.
    Size: von 0 bis z.B 50 & von 0 bis 60. (50/60)
    Ja wäre ne Möglichkeit aber kann man auch machen das der Rand noch da ist ? Also Links Rechts und unten ?
    Also alles wie immer außer das oben die fehtl
    Hallo Björn,
    ob du nun im Form_load oder irgendeinem Button_click Ereignis die Form positionierst, egal.
    hiermit kannst du sie optimal positionieren

    um die gösse deiner form an deinen desktop abzüglich der taskleiste anzupassen:

    VB.NET-Quellcode

    1. Me.Size = Screen.PrimaryScreen.WorkingArea.Size


    um die form zu positionieren zb. diese sub aufrufen:

    VB.NET-Quellcode

    1. Private Sub Fenster_Screen_Relation()
    2. 'WorkingArea anstatt Bounds
    3. Dim max_left As Integer = Screen.PrimaryScreen.WorkingArea.Left
    4. Dim max_right As Integer = Screen.PrimaryScreen.WorkingArea.Right - Me.Width
    5. Dim max_top As Integer = Screen.PrimaryScreen.WorkingArea.Top
    6. Dim max_bottom As Integer = Screen.PrimaryScreen.WorkingArea.Bottom - Me.Height
    7. If Me.Left < max_left Then Me.Left = max_left
    8. If Me.Left > max_right Then Me.Left = max_right
    9. If Me.Top < max_top Then Me.Top = max_top
    10. If Me.Top > max_bottom Then Me.Top = max_bottom
    11. End Sub


    nur mal als beispiel, geht auch anders.

    mfg OnkelR
    Du hast in deiner Form oder wasauchimmer ein MouseMove Event. Hier überprüfst du ob die Position = AndockPosition ist. Dafür gibt es die EventArgs (oft e). Wenn du nun irgendwas setzt, das sagt, "es wird gerade die maus gedrückt", wie z.B. eine globale Boolean-Variable, kannst du diese auf True im MouseMove-Event überprüfen. Du setzt die im MouseDown-Event auf True und im MouseMove-Event auf False. Fertig ;)
    ja seh grad, wenns ums verschieben geht: in diesem Beispiel wird die form mittels eines panels verschoben, da du ja keine leiste hast.

    VB.NET-Quellcode

    1. #Region " Fenster verschieben"
    2. Private MausLocation As Point
    3. Private Sub Form_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseDown
    4. If e.Button = Windows.Forms.MouseButtons.Left Then
    5. MausLocation = e.Location
    6. End If
    7. End Sub
    8. Private Sub Form_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
    9. If e.Button = Windows.Forms.MouseButtons.Left Then
    10. Dim nx As Integer = e.Location.X - MausLocation.X + Me.Location.X
    11. Dim ny As Integer = e.Location.Y - MausLocation.Y + Me.Location.Y
    12. Me.Location = New Point(x:=nx, y:=ny)
    13. End If
    14. End Sub
    15. Private Sub Form_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseUp
    16. Me.SuspendLayout()
    17. Fenster_Screen_Relation()
    18. Me.ResumeLayout()
    19. End Sub
    20. Private Sub Fenster_Screen_Relation()
    21. 'WorkingArea anstatt Bounds
    22. Dim max_left As Integer = Screen.PrimaryScreen.WorkingArea.Left
    23. Dim max_right As Integer = Screen.PrimaryScreen.WorkingArea.Right - Me.Width
    24. Dim max_top As Integer = Screen.PrimaryScreen.WorkingArea.Top
    25. Dim max_bottom As Integer = Screen.PrimaryScreen.WorkingArea.Bottom - Me.Height
    26. If Me.Left < max_left Then Me.Left = max_left
    27. If Me.Left > max_right Then Me.Left = max_right
    28. If Me.Top < max_top Then Me.Top = max_top
    29. If Me.Top > max_bottom Then Me.Top = max_bottom
    30. End Sub
    31. #End Region