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ć?

sooprise
źródło

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.

Hans Olsson
źródło
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

volody
źródło
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.

dlras2
źródło
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.

Arunkumar Pushparaj
źródło
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

Wsporniki
źródło
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;
}
Sameera R.
źródło
1
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}
Mauricio Kenny
źródło
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