1. 程式人生 > >C# 窗體的最大化、最小化、關閉按鈕的自定義

C# 窗體的最大化、最小化、關閉按鈕的自定義

1 建立一個窗體專案(本專案是在VS2015中進行建立) 2 將窗體的FormBorderStyle屬性設定為None,設定後窗體的標題欄將消失不顯示 3 新增2個panel空間,如下圖佈置,上面一個panel作為標題欄,下面一個panel作為窗體內容顯示區
4 新增3個pictureBox空間,作為最大化、最小化、關閉按鈕的容器 5 準備最大化、最小化、關閉按鈕的圖片,如果需要邊框也需要提前準備 6 向專案中新增資原始檔 右擊-->新增-->新專案-->資原始檔-->新增資源-->圖片 或者可以通過向空間插入的圖片的方法新增 7 編寫程式碼 7.1 設定窗體載入時載入圖片,找到窗體的載入(LOAD)事件 7.2 將最大化、最小化、關閉按鈕的Click事件都設定為pictureBox_Click 7.3 新增程式碼 private void Form1_Load(object sender, EventArgs e) { //設定大小 this.Width = Resource1.登入介面標題.Width; this.Height = Resource1.登入介面下面.Height + Resource1.登入介面標題.Height; pictureBox_Min.Width = Resource1.最小化按鈕.Width; pictureBox_Min.Height = Resource1.最小化按鈕.Height; pictureBox_Max.Width = Resource1.最大化按鈕.Width; pictureBox_Max.Height = Resource1.最大化按鈕.Height; pictureBox_Close.Width = Resource1.關閉按鈕.Width; pictureBox_Close.Height = Resource1.關閉按鈕.Height; //設定圖 panel_Title.BackgroundImage = Resource1.登入介面標題; panel_ALL.BackgroundImage = Resource1.登入介面下面; pictureBox_Min.Image = null; pictureBox_Min.Image = Resource1.最小化按鈕; pictureBox_Max.Image = null; pictureBox_Max.Image = Resource1.最大化按鈕; pictureBox_Close.Image = null; pictureBox_Close.Image = Resource1.關閉按鈕; //設定最大化、最小化、關閉按鈕的Tag值,按照這種方法一定要設定,不然將會報錯 pictureBox_Min.Tag = 0; pictureBox_Max.Tag = 1; pictureBox_Close.Tag = 2 } 7.4 滑鼠點選事件的獲取 /// <summary> /// 滑鼠對最大化、最小化、關閉按鈕的點選事件 /// </summary> /// <param name="frm_Tem"></param> /// <param name="n"></param> public void PicClickMenus(Form frm_Tem, int n) { switch (n) { case 0: frm_Tem.WindowState = FormWindowState.Minimized; break; case 1: { if (frm_Tem.WindowState == FormWindowState.Maximized) { frm_Tem.WindowState = FormWindowState.Normal; } else { frm_Tem.WindowState = FormWindowState.Maximized; } break; } case 2: frm_Tem.Close(); break; } } 7.5 滑鼠點選事件 //最大化、最小化、關閉按鈕的點選事件 private void pictureBox_Click(object sender, EventArgs e) { PicClickMenus(this, Convert.ToInt16(((PictureBox)sender).Tag.ToString())); Console.WriteLine(Convert.ToInt16(((PictureBox)sender).Tag.ToString())); }