WinForms ont ces trois cases dans le coin supérieur droit qui minimisent, maximisent et ferment le formulaire. Ce que je veux être capable de faire est de supprimer le minimiser et de maximiser, tout en gardant la fermeture.
Je souhaite également que la fermeture minimise la forme au lieu de la fermer.
Comment cela peut-il être fait?
Le Form
a deux propriétés appelées MinimizeBox
et MaximizeBox
, elles sont définies sur false
.
Pour arrêter la fermeture du formulaire, gérez l'événement FormClosing
et définissez e.Cancel = true;
dedans et après cela, placez WindowState = FormWindowState.Minimized;
, pour minimiser la forme.
Liez un gestionnaire à l'événement FormClosing
, puis définissez e.Cancel = true
Et définissez le formulaire this.WindowState = FormWindowState.Minimized
.
Si vous souhaitez réellement fermer le formulaire, créez un booléen _close
Pour l'ensemble de la classe et, dans votre gestionnaire, définissez e.Cancel
Sur !_close
, Afin que l'utilisateur clique sur le bouton X
sur la fenêtre, elle ne ferme pas, mais vous pouvez toujours la fermer (sans la tuer) avec close = true; this.Close();
(Et juste pour que ma réponse soit complète) définissez MaximizeBox
et MinimizeBox
propriétés du formulaire sur False
.
Définissez les propriétés de formulaire MaximizeBox
et MinimizeBox
sur False
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
Vous ferez cela dans le concepteur.
vous pouvez simplement désactiver maximiser le constructeur de formulaire intérieur.
public Form1(){
InitializeComponent();
MaximizeBox = false;
}
minimiser lors de la fermeture.
private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
e.Cancel = true;
WindowState = FormWindowState.Minimized;
}
Comment faire pour réduire la forme lorsque la fermeture a déjà été traitée, mais comment supprimer les boutons Réduire et Agrandir ne l'étaient pas.FormBorderStyle
: FixedDialog
MinimizeBox
: false
MaximizeBox
: false
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}