Wyłączenie minimalizacji i maksymalizacji w WinForm?


99

WinForms mają te trzy pola w prawym górnym rogu, które minimalizują, maksymalizują i zamykają formularz. To, co chcę zrobić, to usunąć minimalizację i maksymalizację, jednocześnie zachowując bliskość.

Ja też co do zamknięcia minimalizuję formę zamiast ją zamykać.

Jak można to zrobić?

Odpowiedzi:


162

FormMa dwie właściwości o nazwie MinimizeBoxi MaximizeBoxustaw oba z nichfalse .

Aby zatrzymać zamykanie formularza, obsłuż FormClosingzdarzenie i ustaw e.Cancel = true;w nim, a następnie ustaw WindowState = FormWindowState.Minimized;, aby zminimalizować formularz.


1
Czy nie mógłbyś po prostu ustawić kontrolki na fałsz?
krystan honor

3
@krystanhonour OP chciał jednak pozostać blisko.
Hans Olsson

16

Ustaw MaximizeBoxi MinimizeBoxformularz właściwości naFalse


15

Powiąż procedurę obsługi ze FormClosingzdarzeniem, a następnie ustaw e.Cancel = truei ustaw formularz this.WindowState = FormWindowState.Minimized.

Jeśli chcesz, aby kiedykolwiek faktycznie zamknąć formularz, zrobić całej klasy wartość logiczną _close, a w swojej obsługi, zestaw e.Canceldo !_close, tak, że gdy użytkownik kliknie Xna oknie, nie zamyka, ale nadal można go zamknąć (bez po prostu to zabijam)close = true; this.Close();

(I tylko po to, żeby moja odpowiedź była kompletna) ustaw MaximizeBoxi MinimizeBoxformularz właściwości na False.


5

Kliknij prawym przyciskiem myszy formularz, w którym chcesz je ukryć, wybierz Sterowanie -> Właściwości.

We Właściwościach ustaw

  • Skrzynka kontrolna -> Fałsz
  • Minimalizuj pole -> Fałsz
  • Maksymalizuj pole -> Fałsz

Zrobisz to w projektancie.


4

Jak zminimalizować formularz podczas zamykania, zostało już udzielone, ale jak usunąć przyciski minimalizacji i maksymalizacji nie było.
FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox:false


3

możesz po prostu wyłączyć maksymalizację wewnątrz konstruktora formularza.

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

zminimalizować podczas zamykania.

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
Proszę dodać wyjaśnienie do swojej odpowiedzi
mechnicov

Mój przyjacielu, to bardzo proste, wystarczy przeczytać każdą linijkę kodu
Mauricio Kenny

Na SO to
kiepska
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.