Désactiver minimiser et maximiser sur WinForm?

98

WinForms a ces trois cases dans le coin supérieur droit qui réduisent, maximisent et ferment le formulaire. Ce que je veux pouvoir faire, c'est supprimer le minimiser et maximiser, tout en gardant la proximité.

J'ai aussi de quoi faire en sorte que la fermeture minimise le formulaire au lieu de le fermer.

Comment cela peut-il être fait?

sooprise
la source

Réponses:

161

Le Formpossède deux propriétés appelées MinimizeBoxet MaximizeBox, définissez-les toutes les deux sur false.

Pour arrêter la fermeture du formulaire, gérez l' FormClosingévénement et définissez-le e.Cancel = true;ici et après cela, définissez WindowState = FormWindowState.Minimized;pour réduire le formulaire.

Hans Olsson
la source
1
Ne pourriez-vous pas simplement définir la boîte de contrôle sur false.
krystan honore
3
@krystanhonour L'OP voulait cependant rester proche.
Hans Olsson
16

Définir MaximizeBoxet MinimizeBoxformer les propriétés surFalse

volody
la source
15

Liez un gestionnaire à l' FormClosingévénement, puis définissez e.Cancel = trueet définissez le formulaire this.WindowState = FormWindowState.Minimized.

Si vous voulez fermer le formulaire un jour, créez un booléen à l'échelle de la classe _closeet, dans votre gestionnaire, définissez-le e.Cancelsur !_close, de sorte que chaque fois que l'utilisateur clique Xsur la fenêtre, il ne se ferme pas, mais vous pouvez toujours le fermer (sans juste le tuer) avecclose = true; this.Close();

(Et juste pour que ma réponse soit complète) définissez MaximizeBoxet MinimizeBoxformez les propriétés sur False.

dlras2
la source
5

Cliquez avec le bouton droit sur le formulaire sur lequel vous souhaitez les masquer, choisissez Contrôles -> Propriétés.

Dans Propriétés, définissez

  • Boîte de contrôle -> Faux
  • Réduire la boîte -> Faux
  • Maximiser la boîte -> Faux

Vous ferez cela dans le concepteur.

Arunkumar Pushparaj
la source
4

Comment réduire le formulaire lors de la fermeture a déjà été répondu, mais comment supprimer les boutons de réduction et d'agrandissement ne l'étaient pas.
FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox:false

Supports
la source
3

vous pouvez simplement désactiver maximiser le constructeur de formulaire.

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

à minimiser lors de la fermeture.

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
    e.Cancel = true;
    WindowState = FormWindowState.Minimized;
}
Sameera R.
la source
1
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}
Mauricio Kenny
la source
2
Veuillez ajouter quelques explications à votre réponse
mechnicov
Mon ami, c'est très facile, il suffit de lire chaque ligne de code
Mauricio Kenny
Sur SO, c'est une réponse de mauvaise qualité
mechnicov