Pergunta

A WinForms possui essas três caixas no canto superior direito que minimizam, maximizam e fecham o formulário. O que eu quero poder fazer é remover o minimizar e maximizar, mantendo o fechamento.

Eu também o que tornar o fechamento minimizar o formulário em vez de fechá -lo.

Como isso pode ser feito?

Foi útil?

Solução

o Form tem duas propriedades chamadas MinimizeBox e MaximizeBox, defina os dois para false.

Para impedir o fechamento da forma, manuseie o FormClosing evento, e definido e.Cancel = true; lá e depois disso, defina WindowState = FormWindowState.Minimized;, para minimizar o formulário.

Outras dicas

Vincule um manipulador ao FormClosing evento, em seguida e.Cancel = true, e defina o formulário this.WindowState = FormWindowState.Minimized.

Se você quiser fechar o formulário, faça um booleano em toda a classe _close E, em seu manipulador, defina e.Cancel para !_close, para que sempre que o usuário clique no X na janela, não fecha, mas você ainda pode fechá -lo (sem apenas matá -lo) com close = true; this.Close();

(E apenas para fazer minha resposta completa) Conjunto MaximizeBox e MinimizeBox formar propriedades para False.

Definir MaximizeBox e MinimizeBox formar propriedades para False

Clique com o botão direito do mouse no formulário em que deseja escondê -los, escolha controles -> Propriedades.

Nas propriedades, defina

  • Caixa de controle -> false
  • Minimize a caixa -> false
  • Maximize Box -> false

Você fará isso no designer.

Você pode simplesmente desativar maximizar o construtor de forma interno.

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

para minimizar ao fechar.

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
    e.Cancel = true;
    WindowState = FormWindowState.Minimized;
}

Como fazer a forma minimizar quando o fechamento já foi respondido, mas como remover Os botões minimizar e maximizar não foram.
FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox: false

public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top