Windows Forms - dies ist eine der beliebtesten Plattformen für die Erstellung einer GUI in C# -Programmiersprache. Es ist nicht ungewöhnlich, dass der Benutzer die Größenänderung eines Fensters verhindern muss. Dies kann beispielsweise nützlich sein, um ein bestimmtes Design beizubehalten und eine unbefugte Änderung des Erscheinungsbildes eines Programms zu verhindern.
Sie können die Eigenschaften verwenden, um das Ändern der Fenstergröße zu verhindern FormBorderStyle und MaximizeBox. Mit der ersten Eigenschaft können Sie den Rahmenstil des Fensters festlegen, und mit der zweiten Eigenschaft können Sie die Schaltfläche Maximieren ein- oder ausblenden. Festlegen des Eigenschaftswerts FormBorderStyle in FixedSingle oder Fixed3D. Sie verhindern, dass die Fenstergröße geändert wird. Und wenn Sie den Eigenschaftswert festlegen MaximizeBox in false, dann wird die Schaltfläche "Maximieren" ausgeblendet.
Mit diesen beiden Eigenschaften können Sie die Größenanpassungsmöglichkeiten des Fensters durch den Benutzer leicht steuern. Beachten Sie jedoch, dass das Verhindern der Größenanpassung eines Fensters für Benutzer zu Beschwerden führen kann, insbesondere wenn die Anwendung keine alternativen Möglichkeiten zum Zoomen oder im Vollbildmodus bietet. Daher wird empfohlen, den Nutzungskontext und die Bedürfnisse der Benutzer sorgfältig zu analysieren, bevor Sie diesen Ansatz anwenden.
Methoden zum Verhindern der Größenänderung eines Fensters in Windows Forms
In Windows Forms gibt es mehrere Möglichkeiten, das Ändern der Fenstergröße zu verhindern. Dies kann nützlich sein, wenn Sie eine feste Fenstergröße festlegen oder benutzerdefinierte Größenänderungen verhindern möchten, die sich negativ auf das Aussehen Ihrer Anwendung auswirken können.
Hier sind einige Methoden, die Sie verwenden können, um die Größenänderung eines Fensters zu verhindern:
| Methode | Die Beschreibung |
|---|---|
| Festlegen der FormBorderStyle-Eigenschaft auf FixedSingle | Diese Methode legt einen einzelnen Fensterrahmen fest und verhindert, dass der Benutzer die Größe des Fensters ändert. Das Fenster hat eine feste Größe, die in den Eigenschaften Width und Height festgelegt ist. |
| Abfangen von WM_NCHITTEST- und WM_SYSCOMMAND-Nachrichten | Sie können die Windows-Meldungen WM_NCHITTEST und WM_SYSCOMMAND abfangen und Werte zurückgeben, die angeben, dass benutzerdefinierte Größenänderungsanforderungen ignoriert werden sollen. Dies ist ein ziemlich komplexer Ansatz, ermöglicht jedoch eine genaue Kontrolle über die Größenänderung des Fensters. |
| Verwenden der Eigenschaften MinimumSize und MaximumSize | Sie können die minimale und maximale Größe des Fensters festlegen, um die Größenänderung des Fensters einzuschränken. Beispielsweise können Sie die MinimumSize-Eigenschaft auf einen Wert festlegen, der der MaximumSize-Eigenschaft entspricht, um ein Fenster mit fester Größe zu erstellen. |
Die Wahl der Methode hängt von Ihren Bedürfnissen und Vorlieben ab. Wenn Sie eine einfache Möglichkeit wünschen, das Ändern der Fenstergröße zu verhindern, ist der Ansatz mit der FormBorderStyle-Eigenschaft am besten geeignet. Und wenn Sie mehr Flexibilität und Kontrolle erreichen möchten, kann die Verwendung von WM_NCHITTEST und WM_SYSCOMMAND das Abfangen von WM_NCHITTEST- und WM_SYSCOMMAND-Nachrichten nützlich sein.
Verwenden der FormBorderStyle-Eigenschaft
Sie können die FormBorderStyle-Eigenschaft verwenden, um das Ändern der Fenstergröße in Windows Forms zu verhindern. Mit dieser Eigenschaft können Sie den Rahmenstil des Fensters steuern und gleichzeitig die Möglichkeit einschränken, dass der Benutzer seine Größe ändern kann.
Um das Ändern der Fenstergröße zu verhindern, müssen Sie die FormBorderStyle-Eigenschaft auf FixedSingle festlegen. Zum Beispiel:
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
Diese Einstellung des Werts FixedSingle bewirkt, dass ein einzelner Fensterrahmen angezeigt wird und die Größe des Fensters nicht geändert wird.
Neben dem FixedSingle-Wert gibt es andere Optionen wie Sizable , Fixed3D , FixedDialog und andere. Sie definieren verschiedene Rahmenstile, die auf ein Fenster angewendet werden können. Der FixedSingle-Wert ist jedoch für dieses Problem geeignet.
Daher können Sie die FormBorderStyle-Eigenschaft mit dem festgelegten FixedSingle-Wert verwenden, um das Ändern der Fenstergröße in Windows Forms zu verhindern.
Verwenden der MaximumSize-Eigenschaft
Die MaximumSize-Eigenschaft wird in Windows Forms verwendet, um die maximale Größe des Anwendungsfensters festzulegen. Wenn Sie diese Eigenschaft festlegen, hat das Fenster eine feste Größe, und der Benutzer kann es nicht ändern.
Um die MaximumSize-Eigenschaft zu verwenden, müssen Sie zwei Parameter angeben: Breite und Höhe. Diese Optionen legen die maximal zulässigen Fenstergrößen fest.
Nachfolgend finden Sie eine Tabelle mit Beispielcode:
this.MaximumSize = new Size(500, 300);
Nachdem Sie die MaximumSize-Eigenschaft festgelegt haben, hat das Anwendungsfenster eine feste Größe, und der Benutzer kann es nicht über die angegebenen Werte hinaus ändern.
Die Verwendung der MaximumSize-Eigenschaft ist besonders nützlich, wenn Sie die Fenstergröße kontrollieren müssen, um mögliche Probleme mit der Anzeige von Schnittstellenelementen zu vermeiden.
Verwenden des Form-Ereignisses.Resize
In Windows Forms können Sie das Ändern der Fenstergröße mithilfe des Form-Ereignisses verhindern.Resize. Dies ermöglicht es dem Programmierer, die Größenänderungen des Fensters zu steuern und die erforderlichen Maßnahmen zu ergreifen, um es in einer bestimmten Ansicht zu speichern.
Das Ereignis Form.Resize tritt auf, wenn sich die Größe des Fensters ändert. Um es zu verwenden, müssen Sie im Programmcode einen Ereignishandler hinzufügen. In diesem Handler können Sie die Aktionen definieren, die beim Ändern der Fenstergröße ausgeführt werden.
Um beispielsweise die Größenänderung eines Fensters zu verhindern:
private void Form1_Resize(object sender, EventArgs e)
this.FormBorderStyle = FormBorderStyle.FixedSingle;
In diesem Beispiel wird die FormBorderStyle-Eigenschaft beim Ändern der Fenstergröße auf FormBorderStyle festgelegt.Ein FixedSingle, das verhindert, dass der Benutzer die Größe des Fensters ändert. Anstelle des Werts FormBorderStyle.FixedSingle Sie können auch andere verfügbare Werte verwenden, die dem gewünschten Fensterverhalten entsprechen.
Verwenden des Form-Ereignisses.Resize ermöglicht eine genauere Kontrolle des Fensterverhaltens und bietet Flexibilität bei der Anpassung der Anwendung an bestimmte Anforderungen.
Verwenden der WinAPI-Funktion SetWindowLong
Sie können die WinAPI-Funktion SetWindowLong verwenden, um die Größenänderung eines Fensters in Windows Forms zu verhindern. Mit dieser Funktion können Sie die Attribute eines Fensters und seine Stile ändern.
Um das Ändern der Fenstergröße zu verhindern, müssen Sie den entsprechenden Fensterstil festlegen. Dazu können Sie die Konstante WS_THICKFRAME verwenden und die Konstante WS_SIZEBOX ausschließen, die für die Größenänderung des Fensters verantwortlich ist.
Im Folgenden finden Sie ein Beispiel für die Verwendung der SetWindowLong-Funktion, um das Ändern der Fenstergröße zu verhindern:
using System;using System.Runtime.InteropServices;namespace WindowSizeRestriction>>
Nachdem dieser Code ausgeführt wurde, kann das Fenster seine Größe nicht mehr ändern.
Es ist wichtig zu beachten, dass diese Lösung für Windows Forms-Anwendungen geeignet ist, die mit .NET Framework erstellt wurden. Für andere Technologien und Plattformen gibt es möglicherweise andere Möglichkeiten, das Ändern der Fenstergröße zu verhindern.
Verwenden der ControlBox-Eigenschaft
Sie können die ControlBox-Eigenschaft verwenden, um die Größenänderung eines Fensters in Windows Forms zu verhindern. Die ControlBox-Eigenschaft ist ein Boolescher Wert, der angibt, ob das Fensterelement Steuerelemente in der Titelleiste des Fensters anzeigen soll.
Wenn die ControlBox-Eigenschaft auf false festgelegt ist, zeigt das Fensterelement keine Steuerelemente an, z. B. die Schaltfläche zum Schließen des Fensters, die Schaltflächen zum Minimieren und Maximieren des Fensters und die Schaltfläche zum Wiederherstellen des Fensters.
Ändern Sie die ControlBox-Eigenschaft in der Form_Load-Methode einfach in false, um die Größenänderung des Fensters zu verhindern. Zum Beispiel:
private void Form1_Load(object sender, EventArgs e)
Auf diese Weise wird das Fenster nach dem Start der Anwendung ohne Steuerelemente im Fenstertitel angezeigt, wodurch die Größe des Fensters nicht geändert werden kann.