C# WinForm開發 取消表單關閉按鈕(整理)

來源:互聯網
上載者:User

      這兩天要弄個東西,然後不想要WinForm內建的關閉表單的按鈕,想用自己定義的一個表單按鈕。又不希望通過更改Form.::.FormBorderStyle屬性的方法來實現,還想留著那個表單欄可以對表單進行移動等。其實禁用最小化、最大化按鈕的直接可以在WinForm的屬性面板中設定了,而這個禁用關閉按鈕的就要自己手動弄了。

      到網上找了找資料,找到了:

      一種方法是可以在表單的屬性面板將表單的 ControlBox屬性設定為false,或者在表單的建構函式中這樣寫:

       public Form1()
        {
            InitializeComponent();
            this.ControlBox = false;   // 設定不出現關閉按鈕
        }

      不過這樣做的話,會連同最小化和最大化按鈕都給弄掉了,所以,如果你想只想讓關閉按鈕不起作用,然後保留最小化、最大化的話,就重寫表單的CreateParams方法:

        //禁用表單的關閉按鈕
        private const int CP_NOCLOSE_BUTTON = 0x200;
        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams myCp = base.CreateParams;
                myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON;
                return myCp;
            }
        }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.