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?

Sooprise
quelle

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.

Hans Olsson
quelle
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

Volody
quelle
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.

dlras2
quelle
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.

Arunkumar Pushparaj
quelle
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

Klammern
quelle
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;
}
Sameera R.
quelle
1
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}
Mauricio Kenny
quelle
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