Minimieren und Maximieren in WinForm deaktivieren?


98

WinForms hat diese drei Felder in der oberen rechten Ecke, die das Formular minimieren, maximieren und schließen. Was ich tun möchte, ist, das Minimieren und Maximieren zu entfernen, während ich das Schließen halte.

Ich auch, was das Schließen machen soll, minimieren Sie das Formular, anstatt es zu schließen.

Wie kann das gemacht werden?

Antworten:


161

Das Formhat zwei Eigenschaften namens MinimizeBoxund MaximizeBox, setzen Sie beide auf false.

Um das Schließen des Formulars zu stoppen, behandeln Sie das FormClosingEreignis und setzen Sie es e.Cancel = true;dort und danach ein WindowState = FormWindowState.Minimized;, um das Formular zu minimieren.


1
Könnten Sie nicht einfach das Kontrollkästchen auf false setzen?
Krystan Ehre

3
@ krystanhonour Das OP wollte aber den Abschluss halten.
Hans Olsson

16

Festlegen MaximizeBoxund MinimizeBoxFormen von Eigenschaften aufFalse


15

Binden Sie einen Handler an das FormClosingEreignis, e.Cancel = truelegen Sie das Formular fest und legen Sie es fest this.WindowState = FormWindowState.Minimized.

Wenn Sie das Formular jemals tatsächlich schließen möchten, erstellen Sie einen klassenweiten Booleschen Wert _closeund setzen Sie in Ihrem Handler e.Cancelauf !_close, damit Xes nicht geschlossen wird, wenn der Benutzer auf das Fenster klickt , aber Sie können es trotzdem schließen (ohne einfach töten) mitclose = true; this.Close();

(Und nur um meine Antwort zu vervollständigen) Setzen MaximizeBoxund MinimizeBoxformen Sie Eigenschaften auf False.


5

Klicken Sie mit der rechten Maustaste auf das Formular, in dem Sie sie ausblenden möchten, und wählen Sie Steuerelemente -> Eigenschaften.

Legen Sie unter Eigenschaften fest

  • Kontrollkästchen -> Falsch
  • Box minimieren -> Falsch
  • Box maximieren -> Falsch

Sie werden dies im Designer tun.


4

Das Minimieren des Formulars beim Schließen wurde bereits beantwortet, das Entfernen der Schaltflächen zum Minimieren und Maximieren jedoch nicht.
FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox:false


3

Sie können die Maximierung innerhalb des Formularkonstruktors einfach deaktivieren.

 public Form1(){
     InitializeComponent();
     MaximizeBox = false;
 }

beim Schließen zu minimieren.

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
    e.Cancel = true;
    WindowState = FormWindowState.Minimized;
}

1
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}

2
Bitte fügen Sie eine Erklärung zu Ihrer Antwort hinzu
mechnicov

Mein Freund, es ist sehr einfach, muss nur jede Codezeile lesen
Mauricio Kenny

Auf SO ist es minderwertige Antwort
mechnicov
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.