Windows Forms: как скрыть кнопку Закрыть (x)?



У меня есть модальный диалог, и нужно скрыть кнопку Закрыть (X), но я не могу использовать
ControlBox = false, потому что мне нужно держать кнопки свернуть и развернуть.



Мне нужно скрыть только кнопку Закрыть, есть ли способ сделать это?



Спасибо большое!



обновление: у меня было разрешение отключить его, что проще :) спасибо всем!

834   8  

8 ответов:

вы не можете скрыть его, но вы можете отключить его, переопределив свойство 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

мы можем скрыть кнопку закрытия на форме, установив this.ControlBox=false;

Ну, вы можете скрыть его, удалив все системное меню:

private const int WS_SYSMENU = 0x80000;
protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.Style &= ~WS_SYSMENU;
        return cp;
    }
}

конечно, при этом удаляются кнопки свернуть и развернуть.

Если вы сохраняете системное меню, но удаляете пункт Закрыть, то кнопка Закрыть остается, но отключена.

последняя альтернатива-нарисовать неклиентскую область самостоятельно. Это довольно трудно сделать правильно.

Если вы действительно хотите скрыть его, как в "не видно", то вам, вероятно, придется создать форму без границ и нарисовать компоненты заголовка самостоятельно. Библиотека VisualStyles содержит доступные элементы Windows. Вам также придется добавить обратно в функциональность изменения размера формы или перемещения формы, захватив панель заголовка. Не говоря уже о меню в углу.

в большинстве случаев трудно оправдать отсутствие кнопки "Закрыть", особенно когда вы хотите модальную форму с минимальными возможностями. Минимизация модальной формы действительно не имеет смысла.

вы можете скрыть закройте окно с помощью

this.ControlBox = false;

и не забудьте добавить пробел в this.Text = " " чтобы сделать это так

enter image description here

в свойствах вашей формы установите 'Control Box' = False, но он также скроет минимизацию и максимизацию.

Ну вы можете скрыть кнопку Закрыть, изменив FormBorderStyle из раздела свойств или программно в конструкторе с помощью:

public Form1()
{
InitializeComponent();
this.FormBorderStyle = FormBorderStyle.None;
}

затем создать пункт меню полосы для выхода из приложения.

ура

если это опция, которую вы можете установить

 this.FormBorderStyle = FormBorderStyle.None;

затем воссоздайте кнопки свернуть и развернуть

    private void button1_Click(object sender, EventArgs e)
    {
        this.WindowState = FormWindowState.Maximized;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        this.WindowState = FormWindowState.Minimized;
    }

Comments

    Ничего не найдено.