Disattivare Riduci a icona e ingrandisci su WinForm?


99

WinForms ha quelle tre caselle nell'angolo in alto a destra che riducono a icona, ingrandiscono e chiudono il modulo. Quello che voglio essere in grado di fare è rimuovere il minimizzare e massimizzare, mantenendo il vicino.

Ho anche cosa fare per chiudere minimizzare il modulo invece di chiuderlo.

Come si può fare?

Risposte:


162

Il Formha due proprietà denominate MinimizeBoxe MaximizeBox, impostare entrambi di false.

Per interrompere la chiusura del modulo, gestisci l' FormClosingevento e inseriscilo, e.Cancel = true;dopodiché imposta WindowState = FormWindowState.Minimized;per ridurre a icona il modulo.


1
Non potresti semplicemente impostare la casella di controllo su false.
Krystan honor

3
@krystanhonour L'OP ha voluto mantenere il contatto però.
Hans Olsson

16

Imposta MaximizeBoxe MinimizeBoxforma le proprietà suFalse


15

Associare un gestore FormClosingall'evento, quindi impostare e.Cancel = truee impostare il modulo this.WindowState = FormWindowState.Minimized.

Se vuoi chiudere effettivamente il modulo, crea un booleano a livello di classe _closee, nel tuo gestore, impostato e.Cancelsu !_close, in modo che ogni volta che l'utente fa clic Xsulla finestra, non si chiude, ma puoi comunque chiuderla (senza semplicemente uccidendolo) conclose = true; this.Close();

(E solo per completare la mia risposta) imposta MaximizeBoxe MinimizeBoxform le proprietà su False.


5

Fare clic con il pulsante destro del mouse sul modulo in cui si desidera nasconderli, scegliere Controlli -> Proprietà.

In Proprietà, imposta

  • Casella di controllo -> Falso
  • Riduci riquadro a icona -> Falso
  • Massimizza riquadro -> Falso

Lo farai nel designer.


4

Come ridurre il modulo a icona quando la chiusura era già stata risolta, ma non come rimuovere i pulsanti di riduzione e ingrandimento.
FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox:false


3

puoi semplicemente disabilitare l'ingrandimento all'interno del costruttore del modulo.

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

da minimizzare in chiusura.

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
Per favore aggiungi qualche spiegazione alla tua risposta
mechnicov

Amico mio, è molto facile, devi solo leggere ogni riga di codice
Mauricio Kenny

Su SO la risposta è di bassa qualità
mechnicov
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.