質問に追加した最新の情報に基づいて、私の回答の最後までスキップしてください。
これは、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