簡體   English   中英

如何隱藏表單的關閉按鈕?

[英]How can I hide the close button of a form?

我正在使用下面的代碼來顯示表單圖標,但禁用關閉按鈕圖標。 這可行,但是我想完全隱藏按鈕。 我該如何實現?

public partial class Form1 : Form
{
    private const int CS_NOCLOSE = 0x200;
    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams mdiCp = base.CreateParams;
            mdiCp.ClassStyle = mdiCp.ClassStyle | CS_NOCLOSE;

            return mdiCp;
        }
    }

    public Form1()
    {
        InitializeComponent();
    }

}

您無法隱藏它,但是可以通過上面的代碼禁用它。

最好使用沒有關閉按鈕的控制箱來制作自己的表單,然后隱藏父表單的控制箱。

這將隱藏所有東西:

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

現在,您可以制作一個大的容器面板,並放置自定義按鈕,該按鈕可以執行“還原”按鈕和“最小化”按鈕之類的操作。 好??

嘗試此操作,以禁用關閉(X)按鈕,它位於vb.net中,您可以將其轉換為c#

Private Const SC_CLOSE As Integer = &HF060
Private Const MF_GRAYED As Integer = &H1

<DllImport("user32.dll")> _
Private Shared Function GetSystemMenu(hWnd As IntPtr, bRevert As Boolean) As IntPtr
End Function

<DllImport("user32.dll")> _
Private Shared Function EnableMenuItem(hMenu As IntPtr, wIDEnableItem As Integer, wEnable As Integer) As Integer
End Function

Public Sub EnableDisable(form As Form, isEnable As Boolean)
    EnableMenuItem(GetSystemMenu(form.Handle, isEnable), SC_CLOSE, MF_GRAYED)
End Sub

調用EnableDisable(Me, False)禁用並EnableDisable(Me, True)啟用

這個對我有用

僅當所有其他按鈕(最小,最大,幫助)也都隱藏時,關閉按鈕才會隱藏。

但是隱藏所有這些內容的一種方法是將表格邊框設置為無,

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM