close
修改Form的FormBoarderStyle屬性->None
- 完成後加入1個panel命名為panel_All
- panel_All的Dock屬性改成Fill
- 加入3個pictureBox分別命名為pictureBox_Min, pictureBox_Max和pictureBox_Close
- pictureBox_Min的Tag屬性值=0
- pictureBox_Max的Tag屬性值=1
- pictureBox_Close的Tag屬性值=2
將圖片加入資源
點選<加入資源>, <加入現有檔案>, 完成如下
--------------------------------------------------------------------------------------------------------------------------------------------
控制圖片的切換狀態
1: #region 控制圖片的切換狀態
2: public void ImageSwitch(object sender, int tag, int ns)
3: {
4: PictureBox pic = (PictureBox)sender;
5: switch (tag)//取得標識
6: {
7: case 0://目前為最小化按鈕
8: {
9: pic.Image = null; //清空圖片
10: if (ns == 0) //滑鼠移入
11: pic.Image = Properties.Resources.minimize2;
12: if (ns == 1) //滑鼠移出
13: pic.Image = Properties.Resources.minimize;
14: break;
15: }
16: case 1://最大化按鈕
17: {
18: pic.Image = null;
19: if (ns == 0)
20: pic.Image = Properties.Resources.maximum2;
21: if (ns == 1)
22: pic.Image = Properties.Resources.maximum;
23: break;
24: }
25: case 2://關閉按鈕
26: {
27: pic.Image = null;
28: if (ns == 0)
29: pic.Image = Properties.Resources.close2;
30: if (ns == 1)
31: pic.Image = Properties.Resources.close;
32: break;
33: }
34: }
35: }
36: #endregion
設定視窗的最大化、最小化和關閉按鈕的單擊事件
1: #region 設定視窗的最大化、最小化和關閉按鈕的單擊事件
2: public void FrmClickSub(Form form, int tag)
3: {
4: switch (tag)//視窗的操作樣式
5: {
6: case 0://視窗最小化
7: form.WindowState = FormWindowState.Minimized;//視窗最小化
8: break;
9: case 1://視窗最大化和還原的切換
10: {
11: if (form.WindowState == FormWindowState.Maximized)//如果視窗目前是最大化
12: form.WindowState = FormWindowState.Normal; //還原視窗大小
13: else
14: form.WindowState = FormWindowState.Maximized; //視窗最大化
15: break;
16: }
17: case 2: //關閉視窗
18: form.Close();
19: break;
20: }
21: }
22: #endregion
最大化按鈕的單擊事件
1: private void pictureBox_Max_Click(object sender, EventArgs e)
2: {
3: FrmClickSub(this, Convert.ToInt16(((PictureBox)sender).Tag.ToString()));//設定滑鼠單擊時按鈕的圖片
4: }
最小化按鈕的單擊事件
1: private void pictureBox_Min_Click(object sender, EventArgs e)
2: {
3: FrmClickSub(this, Convert.ToInt16(((PictureBox)sender).Tag.ToString()));//設定滑鼠單擊時按鈕的圖片
4: }
關閉按鈕的單擊事件
1: private void pictureBox_Close_Click(object sender, EventArgs e)
2: {
3: FrmClickSub(this, Convert.ToInt16(((PictureBox)sender).Tag.ToString()));//設定滑鼠單擊時按鈕的圖片
4: }
最大化按鈕的MouseEnter和MouseLeave
MouseEnter
1: private void pictureBox_Max_MouseEnter(object sender, EventArgs e)
2: {
3: ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 0);//設定滑鼠移入後按鈕的圖片
4: }
MouseLeave
1: private void pictureBox_Max_MouseLeave(object sender, EventArgs e)
2: {
3: ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 1);//設定滑鼠移出後按鈕的圖片
4: }
編譯程式
全站熱搜