Fenstergröße fixieren (Ohne FormBorderStyle = Fixed...)

  • VB.NET
  • .NET (FX) 1.0–2.0

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von TRiViUM.

    Fenstergröße fixieren (Ohne FormBorderStyle = Fixed...)

    Hallo liebe Community,

    Ich habe eine mir eine Form, die folgendermaßen aussieht:


    Dazu ist folgendes notwendig:

    VB.NET-Quellcode

    1. Me.ShowIcon = false
    2. Me.Text = ""
    3. Me.ControlBox = false

    Die Form sieht leider nur so aus, solang Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Sizable ist.


    Wenn ich die Fenstergröße mit Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Fixed... fixiere, sieht die Form jedoch so aus:


    Ich kann die Form so zwar nicht mehr in ihrer Größe ändern, jedoch habe ich dann nicht mehr den von mir gewünschten Aero-Ramen wie im ersten Bild.
    Ich kann zwar wie in dem ersten Bild Me.MinimumSize und Me.MaximumSize festlegen, habe aber dennoch den Cursor zum vergrößern/verkleinern, wenn ich mit der Maus über den Rand fahre.

    Gibt es da eine andere Lösung als den Borderstyle auf fixed... zu stellen?

    Mein Ziel ist es, dass die Form den Aero-Ramen wie im ersten Bild besitzt und das man ihre Größe nicht mehr ändern kann.
    Der übliche Cursor zum Vergrößern/ Verkleinern soll ebenfalls nicht angezeigt werden.


    Danke für Hilfe :rolleyes:

    MfG
    FixedSingle sieht dann so aus wie bei meinem Ersten Post das 2. Bild.
    Somit verschwindet der Aero-Rahmen, was ich nicht möchte.

    Hab es momentan auch mit MinimumSize und MaximumSize auf die gewünschte Größe setzen gelößt,
    aber dennoch habe ich dann den Verkleinern/ Vergrößern-Cursor wenn ich mit der Maus auf den Rand der Form fahre...

    Gibts dafür evtl auch ne API o.Ä. ?

    ThuCommix schrieb:

    Ansonsten würd ich sagen.. ist doch egal oder?

    Für die Funktion des Programms schon, klar.

    Jedoch ist es für den Benutzer der Software verwirrend, wenn er den Cursor zum Vergrößern/ Verkleinern angezeigt bekommt, dies aber nicht funktioniert.
    In der Firma wo ich arbeite kommen dann Bemerkungen, dass das Vergrößern/ Verkleinern nicht funktioniert.

    Und das mit this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide bezieht sich (meiner Meinung nach) nicht auf den Cursor, sondern auf die untere rechte Ecke (evtl. sogar auswählbar), wo dieser SizeGrip angezeigt bzw. verborgen wird.
    Habs im Load-Event hinzugefügt, jedoch ohne sichtbare Veränderung...

    Hab gerade noch einen Thread mit dem selben Problem gefunden (allerdings ohne Lösung):
    Fensterrand fixed

    Aber dennoch Danke!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „TRiViUM“ ()

    AutoSizeMode = AutoSizeMode.GrowAndShrink oder

    VB.NET-Quellcode

    1. Protected Overrides Sub WndProc(ByRef m As Message)
    2. MyBase.WndProc(m)
    3. If m.Msg = 132 Then ' WM_NCHITTEST
    4. Dim result = m.Result.ToInt32()
    5. If result >= 10 And result <= 17 Then ' >= HTLEFT && <= HTBOTTOMRIGHT
    6. m.Result = New IntPtr(18) ' HTBORDER
    7. End If
    8. End If
    9. End Sub

    Den Code hab ich aus dem .Net Framework Source.

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

    Es funktioniert!
    habe beim Load-Event der Form einfach ​AutoSizeMode = AutoSizeMode.GrowAndShrink eingefügt.
    Nun kann man die Größe nicht mehr mit der Maus verändern :)

    Der API-Aufruf funktioniert ebenfalls ohne Probleme!

    Vielen Dank für die Hilfe :)