Отключить свернуть и развернуть на WinForm? - PullRequest
88 голосов
/ 12 июня 2010

У WinForms есть три поля в верхнем правом углу, которые минимизируют, максимизируют и закрывают форму. То, что я хочу сделать, это убрать минимизацию и максимизацию, сохраняя при этом закрытие.

Я также, что сделать закрытие минимизировать форму, а не закрывать ее.

Как это можно сделать?

Ответы [ 7 ]

147 голосов
/ 12 июня 2010

Form имеет два свойства, которые называются MinimizeBox и MaximizeBox, установите для них оба значения false.

Чтобы остановить закрытие формы, обработайте событие FormClosing и установите там e.Cancel = true;, а затем установите WindowState = FormWindowState.Minimized;, чтобы свернуть форму.

15 голосов
/ 12 июня 2010

Привязать обработчик к событию FormClosing, затем установить e.Cancel = true и установить форму this.WindowState = FormWindowState.Minimized.

Если вы хотите когда-либо фактически закрыть форму, задайте для класса логическое значение _close и в своем обработчике установите e.Cancel на !_close, чтобы каждый раз, когда пользователь нажимал X в окне , он не закрывается, но вы все равно можете закрыть его (не убивая) с помощью close = true; this.Close();

(и просто для завершения моего ответа) установите свойства формы MaximizeBox и MinimizeBox в False.

12 голосов
/ 12 июня 2010

Установите MaximizeBox и MinimizeBox свойства формы в False

4 голосов
/ 24 октября 2014

Щелкните правой кнопкой мыши форму, на которой вы хотите их скрыть, выберите «Управление» -> «Свойства».

В «Свойствах» установите

  • Поле управления -> Ложь
  • Свернуть ящик -> Ложь
  • Свернуть ящик -> Ложь

Вы сделаете это в конструкторе.

2 голосов
/ 17 декабря 2013

Вы можете просто отключить максимизировать внутри конструктора формы.

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

чтобы свернуть при закрытии.

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
    e.Cancel = true;
    WindowState = FormWindowState.Minimized;
}
1 голос
/ 27 июля 2017

Как сделать так, чтобы форма сворачивалась, когда на закрытие уже отвечали, но как удалить кнопки свертывания и сворачивания не были. FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox: false

0 голосов
/ 28 марта 2019
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}
...