Простые кнопки Windows Form в правом верхнем углу

Мой вопрос может показаться простым, но я нигде не могу получить ответ, который ищу. Я хочу создать страницу входа для программы Windows Form, но не хочу, чтобы на форме были классические кнопки в правом верхнем углу (Свернуть, Развернуть, Закрыть). Я не могу найти свойство, чтобы скрыть кнопки.

Кто-нибудь знает хороший способ к этому? заранее спасибо


person phadaphunk    schedule 12.12.2011    source источник


Ответы (3)


Для кнопок сворачивания и разворачивания просто установите эти свойства (например, в конструкторе):

public Form1()
{      
    MaximizeBox = false;
    MinimizeBox = false;
    ControlBox = false;
}
person Fischermaen    schedule 12.12.2011
comment
Спасибо, что я нашел для этих кнопок, но моя настоящая проблема - кнопка закрытия ... Я не хочу, чтобы пользователь выходил со страницы входа - person phadaphunk; 13.12.2011
comment
@PhaDaPhunk ControlBox = false; - person DaveShaw; 13.12.2011
comment
@PhaDaPhunk: Я изменил свой образец. - person Fischermaen; 13.12.2011
comment
Вы все еще можете закрыть такую ​​форму с помощью ALT + F4. - person David Heffernan; 13.12.2011
comment
@DavidHeffernan Я знаю, но эта защита от закрытия не требуется для моей программы. - person phadaphunk; 13.12.2011

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

Кнопка закрытия

Во время конструирования и создания объекта Form .NET будет использовать параметры создания по умолчанию, доступные в свойстве CreateParams базового класса.

Фактически, CreateParams property доступен в классе Forms.Control. В классе формы (производном от System.Windows.Forms.Form) переопределите это свойство и измените флаги создания. Для отключения кнопки «Закрыть» используйте 0x200 для изменения члена ClassStyle 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;
     }
 } 

Пожалуйста, перейдите по этой ссылке для получения дополнительной информации

person Enigma State    schedule 12.12.2011
comment
Спасибо, но все же нужно скрыть X (кнопку закрытия). - person phadaphunk; 13.12.2011
comment
Достаточно простого ControlBox = false;. - person Fischermaen; 13.12.2011

Подумав немного нестандартно, рассматривали ли вы возможность показать диалоговое окно пароля Windows вместо того, чтобы писать свой собственный? Это дает преимущество в том, что ваш диалог выглядит более естественным.

Вы можете отобразить диалоговое окно, настроенное для ваших нужд, с помощью _ 1_ API. Существует множество оболочек C #, но это довольно простой вызов p / invoke, если вы хотите сделать это самостоятельно. Я быстро обнаружил этот вопрос о переполнении стека с необходимыми p / invoke работа уже сделана.

person David Heffernan    schedule 12.12.2011