Отключение минимизации и максимизации в WinForm?
Вопрос
У WinForms имеют те три коробки в верхнем правом углу, который минимизируют, максимизируют и закрывают форму. То, что я хочу сделать, это удалить минимизировать и максимизировать, сохраняя при этом закрытие.
Я также то, что делать близко, минимизировать форму вместо того, чтобы закрыть ее.
Как это может быть сделано?
Решение
То Form
имеет два свойства под названием MinimizeBox
а также MaximizeBox
, установить их оба false
.
Чтобы остановить закрытие формы, обратитесь к FormClosing
событие и установить e.Cancel = true;
там и после этого, установить WindowState = FormWindowState.Minimized;
, чтобы минимизировать форму.
Другие советы
Связать обработчик к FormClosing
событие, затем установить e.Cancel = true
, и установите форму this.WindowState = FormWindowState.Minimized
.
Если вы хотите когда-либо закрыть форму, сделайте класс широкий булевой _close
И, в вашем обработке, установите e.Cancel
к !_close
, так, чтобы всякий раз, когда пользователь нажимает X
в окне он не закрывается, но вы все еще можете закрыть его (не просто убивая его) с close = true; this.Close();
(И просто чтобы сделать мой ответ полным) MaximizeBox
а также MinimizeBox
Свойства формы для False
.
Задавать MaximizeBox
а также MinimizeBox
Свойства формы для False
Щелкните правой кнопкой мыши Форма, на которую вы хотите скрыть, выберите «Управление элементами управления».
В свойствах, установить
- Контроль управления -> Ложь
- Минимизировать коробку -> ложь
- Максимизируйте коробку -> ложь
Вы сделаете это в дизайнере.
Вы можете просто отключить максимизировать внутреннюю форму конструктора.
public Form1(){
InitializeComponent();
MaximizeBox = false;
}
минимизировать при закрытии.
private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
e.Cancel = true;
WindowState = FormWindowState.Minimized;
}
Как сделать форму минимизировать при закрытии уже ответа, но как Удалить Кнопы минимизации и максимизации не было.
FormBorderStyle
: FixedDialog
MinimizeBox
: false
MaximizeBox
: false
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}