Windows Forms: Как скрыть кнопку Close (x)?
У меня модальный диалог, и мне нужно скрыть кнопку Close (X), но я не могу использовать
ControlBox = false
, потому что мне нужно держать кнопки "Минимизировать" и "Максимизировать".
Мне нужно скрыть только кнопку Close, есть ли способ сделать это?
Спасибо большое!
Обновление: у меня было разрешение отключить его, что проще:) Спасибо всем!
Ответы
Ответ 1
Вы не можете скрыть его, но вы можете отключить его, переопределив свойство CreateParams формы.
private const int CP_NOCLOSE_BUTTON = 0x200;
protected override CreateParams CreateParams
{
get
{
CreateParams myCp = base.CreateParams;
myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON ;
return myCp;
}
}
Источник: http://www.codeproject.com/KB/cs/DisableClose.aspx
Ответ 2
Мы можем скрыть кнопку закрытия формы, установив this.ControlBox=false;
Ответ 3
Ну, вы можете скрыть его, удалив все системное меню:
private const int WS_SYSMENU = 0x80000;
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.Style &= ~WS_SYSMENU;
return cp;
}
}
Конечно, при этом удаляются кнопки минимизации и максимизации.
Если вы сохраняете системное меню, но удаляете элемент закрытия, кнопка закрытия остается, но отключена.
Конечной альтернативой является рисование неклиентской области самостоятельно. Это довольно трудно понять.
Ответ 4
Если вы действительно хотите скрыть это, как в "невидимом", вам, вероятно, придется создать форму без полей и самостоятельно нарисуйте элементы субтитров. Библиотека VisualStyles имеет доступные элементы Windows. Вам также нужно будет добавить функциональность повторной калибровки формы или перемещения формы, захватив панель заголовка. Не говоря уже о системном меню в углу.
В большинстве случаев трудно подтвердить, что кнопка "закрыть" недоступна, особенно если вам нужна модальная форма с минимальными возможностями. Минимизация модальной формы действительно не имеет смысла.
Ответ 5
Ну, вы можете скрыть кнопку закрытия, изменив FormBorderStyle из раздела свойств или программно в конструкторе, используя:
public Form1()
{
InitializeComponent();
this.FormBorderStyle = FormBorderStyle.None;
}
тогда вы создаете элемент меню, чтобы выйти из приложения.
веселит
Ответ 6
В свойствах формы задано "Control Box" = False, но оно также скроет Minimized и Maximize.