Визуально удалите/запретите близкую кнопку из строки заголовка.NET

Я использую "хвост-f" под cygwin.

9
задан tshepang 10 December 2013 в 18:07
поделиться

4 ответа

Основываясь на последней информации, которую вы добавили в свой вопрос, пропустите мой ответ до конца.


Это то, что вам нужно установить в значение false: Свойство Form.ControlBox

НО вы потеряете кнопки свертывания и разворачивания, а также меню приложения (вверху слева).

В качестве альтернативы переопределите OnClose и установите для параметра Cancel значение true (пример C #):

protected override void OnFormClosing(FormClosingEventArgs e)
{
    if (e.CloseReason != CloseReason.WindowsShutDown && e.CloseReason != CloseReason.ApplicationExitCall)
    {
        e.Cancel = true;
    }

    base.OnFormClosing(e);
}

Если ни одно из этих решений приемлемы, и вы должны отключить только кнопку закрытия, вы можете перейти по маршруту pinvoke / createparams:

Как отключить кнопку закрытия из оконной формы с помощью приложения .NET

Это версия кода jdm для VB:

Private Const CP_NOCLOSE_BUTTON As Integer = &H200
Protected Overloads Overrides ReadOnly Property CreateParams() As    CreateParams
   Get 
      Dim myCp As CreateParams = MyBase.CreateParams 
      myCp.ClassStyle = myCp.ClassStyle Or CP_NOCLOSE_BUTTON 
      Return myCp 
   End Get 
End Property 
28
ответ дан 4 December 2019 в 06:06
поделиться

Вы можете отключить кнопку закрытия и пункт меню закрытия в системном меню, изменив "стиль класса" окна. Добавьте в форму следующий код:

const int CS_NOCLOSE = 0x200;

protected override CreateParams CreateParams {
    get {
        CreateParams cp = base.CreateParams;
        cp.ClassStyle |= CS_NOCLOSE;
        return cp;
    }
}

Это не только предотвратит закрытие окна, но и сделает кнопку серой. Это C #, но я думаю, что его будет легко перевести на VB.

10
ответ дан 4 December 2019 в 06:06
поделиться

У вас должна быть возможность переопределить событие OnClose формы. Это обычное явление, когда приложение сворачивается в системный лоток в «закрытом» состоянии.

3
ответ дан 4 December 2019 в 06:06
поделиться

Вы можете установить для свойства ControlBox значение False ,

1
ответ дан 4 December 2019 в 06:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: