Основываясь на последней информации, которую вы добавили в свой вопрос, пропустите мой ответ до конца.
Это то, что вам нужно установить в значение 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
Вы можете отключить кнопку закрытия и пункт меню закрытия в системном меню, изменив "стиль класса" окна. Добавьте в форму следующий код:
const int CS_NOCLOSE = 0x200;
protected override CreateParams CreateParams {
get {
CreateParams cp = base.CreateParams;
cp.ClassStyle |= CS_NOCLOSE;
return cp;
}
}
Это не только предотвратит закрытие окна, но и сделает кнопку серой. Это C #, но я думаю, что его будет легко перевести на VB.
У вас должна быть возможность переопределить событие OnClose формы. Это обычное явление, когда приложение сворачивается в системный лоток в «закрытом» состоянии.
Вы можете установить для свойства ControlBox
значение False
,