Отключение минимизации и развертывания в WinForm?

99

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

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

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

совместное предприятие
источник

Ответы:

162

У Formнего есть два свойства, называемых MinimizeBoxи MaximizeBox, установите для них оба false.

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

Ханс Ольссон
источник
1
Не могли бы вы просто установить для блока управления значение false.
krystan honor
3
@krystanhonour Однако ОП хотел держаться подальше.
Ханс Олссон,
16

Установить MaximizeBoxи MinimizeBoxсформировать свойства дляFalse

Володя
источник
15

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

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

(И просто для того, чтобы мой ответ был полным) установить MaximizeBoxи MinimizeBoxсформировать свойства в False.

dlras2
источник
5

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

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

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

Вы сделаете это в дизайнере.

Арункумар Пушпарадж
источник
4

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

Кронштейны
источник
3

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

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

свести к минимуму при закрытии.

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
Пожалуйста, добавьте пояснение к своему ответу
mechnicov
Мой друг, это очень просто, нужно только прочитать каждую строчку кода
Маурисио Кенни
На SO это некачественный ответ
mechnicov