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