C# WinForm開發 取消窗體關閉按鈕(整理)


      這兩天要弄個東西,然后不想要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;
            }
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM