Может ли форма окна отображать кнопки min и max без кнопки закрытия? - PullRequest
2 голосов
/ 25 июня 2010

Есть ли способ (в C #) отобразить форму только с помощью кнопок свертывания и сворачивания? Без кнопки закрытия?

Единственный способ удалить кнопку закрытия (о которой я знаю):

form.ControlBox = false;

Но это также избавляет от обеих других кнопок.

Ответы [ 2 ]

2 голосов
/ 25 июня 2010

Я написал функцию для этого один раз

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
        if (EnableMenuItem(GetSystemMenu(this.Handle, 0), SC_CLOSE, MF_GRAYED) == -1)
            throw new Win32Exception("The message box did not exist to gray out its X");
    }
    private const int SC_CLOSE = 0xF060;
    private const int MF_GRAYED = 0x1;
    [DllImport("USER32")]
    internal static extern int EnableMenuItem(IntPtr WindowHandle, int uIDEnableItem, int uEnable);
    [DllImport("USER32")]
    internal static extern IntPtr GetSystemMenu(IntPtr WindowHandle, int bReset);
}

Обратите внимание, что alt-f4 все еще работает, и щелкните правой кнопкой мыши "закрыть это окно", когда вы смотрите на него с панели задач.(проверено в windows 7)

2 голосов
/ 25 июня 2010

Есть статья здесь , показывающая, как это сделать. Требуется использование неуправляемого User32.dll

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...