[C#自学视频]认识windows窗体

7.4.1  根据桌面大小调节窗体大小

namespace SetFormSizeByDeskSize
{
    public partial class Frm_Main : Form
    {
        public Frm_Main()
        {
            InitializeComponent();
        }

        private void Frm_Main_Load(object sender, EventArgs e)
        {
            int DeskWidth = Screen.PrimaryScreen.WorkingArea.Width;//获取桌面宽度
            int DeskHeight = Screen.PrimaryScreen.WorkingArea.Height;//获取桌面高度
            this.Width = Convert.ToInt32(DeskWidth * 0.8);//设置窗体宽度
            this.Height = Convert.ToInt32(DeskHeight * 0.8);//设置窗体高度
        }
    }
}

7.4.2 自定义最大化、最小化和关闭按钮

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ControlFormStatus
{
    public partial class Frm_Main : Form
    {
        public Frm_Main()
        {
            InitializeComponent();
        }

        private void Frm_Main_Load(object sender, EventArgs e)
        {
            this.Width = Properties.Resources.登录界面标题.Width;//设置体的宽度
            this.Height = Properties.Resources.登录界面标题.Height + Properties.Resources.登录界面下面.Height;//设置窗体的高度
            panel_Title.BackgroundImage = Properties.Resources.登录界面标题;//显示窗体标题栏的图片
            panel_ALL.BackgroundImage = Properties.Resources.登录界面下面;//显示窗体标题栏下同的图片
            pictureBox_Min.Image = null;//清空PictuteBox控件
            pictureBox_Min.Image = Properties.Resources.最小化按钮;//显示最小化按钮的图片
            pictureBox_Max.Image = null; //清空PictuteBox控件
            pictureBox_Max.Image = Properties.Resources.最大化按钮;//显示最大化按钮的图片
            pictureBox_Close.Image = null;//清空PictuteBox控件
            pictureBox_Close.Image = Properties.Resources.关闭按钮;//显示关闭按钮的图片
        }

        #region  设置窗体的最大化、最小化和关闭按钮的单击事件
        /// <summary>
        /// 设置窗体的最大化、最小化和关闭按钮的单击事件
        /// </summary>
        /// <param Frm_Tem="Form">窗体</param>
        /// <param n="int">标识</param>
        public void FrmClickMeans(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;
            }
        }
        #endregion

        #region  控制图片的切换状态
        /// <summary>
        /// 控制图片的切换状态
        /// </summary>
        /// <param sender =" object ">要改变图片的对象</param>
        /// <param n="int">标识</param>
        /// <param ns="int">移出移入标识</param>
        public static PictureBox Tem_PictB = new PictureBox();//实例化PictureBox控件
        public void ImageSwitch(object sender, int n, int ns)
        {
            Tem_PictB = (PictureBox)sender;
            switch (n)//获取标识
            {
                case 0://当前为最小化按钮
                    {
                        Tem_PictB.Image = null;//清空图片
                        if (ns == 0)//鼠标移入
                            Tem_PictB.Image = Properties.Resources.最小化变色;
                        if (ns == 1)//鼠标移出
                            Tem_PictB.Image = Properties.Resources.最小化按钮;
                        break;
                    }
                case 1://最大化按钮
                    {
                        Tem_PictB.Image = null;
                        if (ns == 0)
                            Tem_PictB.Image = Properties.Resources.最大化变色;
                        if (ns == 1)
                            Tem_PictB.Image = Properties.Resources.最大化按钮;
                        break;
                    }
                case 2://关闭按钮
                    {
                        Tem_PictB.Image = null;
                        if (ns == 0)
                            Tem_PictB.Image = Properties.Resources.关闭变色;
                        if (ns == 1)
                            Tem_PictB.Image = Properties.Resources.关闭按钮;
                        break;
                    }
            }
        }
        #endregion

        private void pictureBox_Close_Click(object sender, EventArgs e)//单击事件
        {
            FrmClickMeans(this, Convert.ToInt16(((PictureBox)sender).Tag.ToString()));//设置鼠标单击时按钮的图片
        }
        private void pictureBox_Close_MouseEnter(object sender, EventArgs e)//鼠标移入事件
        {
            ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 0);//设置鼠标移入后按钮的图片
        }
        private void pictureBox_Close_MouseLeave(object sender, EventArgs e)//鼠标移出事件
        {
            ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 1);//设置鼠标移出后按钮的图片
        }
    }
}

7.4.3  窗体换肤程序

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WinCusSkin
{
    public partial class Frm_Main  : Form
    {

        String strImagesPath = Application.StartupPath.Substring(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\")).LastIndexOf("\\"));
        int top, left, hei, wid;
        bool bol = false, bo = false, bolTop = false, bolLeft = false, bolRight = false, bolBottom = false, bolLeftCornu = false, bolRightCornu = false;
        int x = 0, y = 0;

        public Frm_Main()
        {
            InitializeComponent();
        }

        //关闭事件。
        private void picClose_Click(object sender, System.EventArgs e)
        {
            Application.Exit();
        }
        //最大化事件。  
        private void picMaximize_Click(object sender, System.EventArgs e)
        {
            if (!bol)
            {
                top = this.Top;
                left = this.Left;
                hei = this.Height;
                wid = this.Width;
                this.Top = 0;
                this.Left = 0;
                int hg = SystemInformation.MaxWindowTrackSize.Height;
                int wh = SystemInformation.MaxWindowTrackSize.Width;
                this.Height = hg;
                this.Width = wh;
                bol = true;
                if (menItemSkin1.Checked)
                    this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\purple\max.png");
                if (menItemSkin2.Checked)
                    this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\blue\max.png");
                if (menItemSkin3.Checked)
                    this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\green\max.png");
            }
            else
            {
                this.Top = top;
                this.Left = left;
                this.Height = hei;
                this.Width = wid;
                bol = false;
                if (menItemSkin1.Checked)
                    this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\purple\max_Normal.png");
                if (menItemSkin2.Checked)
                    this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\blue\max_Normal.png");
                if (menItemSkin3.Checked)
                    this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\green\max_Normal.png");
            }
        }
        //最小化事件。
        private void picMinimize_Click(object sender, System.EventArgs e)
        {
            top = this.Top;
            left = this.Left;
            hei = this.Height;
            wid = this.Width;
            this.Height = 0;
            this.Width = 0;
            bo = true;
        }
        //窗口再次被激活时。
        private void FormCusSkin_Activated(object sender, System.EventArgs e)
        {
            if (bo)
            {
                this.Top = top;
                this.Left = left;
                this.Height = hei;
                this.Width = wid;
                bo = false;
            }
        }
        //选择关闭。
        private void mItemColse_Click(object sender, System.EventArgs e)
        {
            Application.Exit();
        }
        //上边框鼠标按下。
        private void panel_Top_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            x = e.X;
            y = e.Y;
            this.bolTop = true;
        }
        //上边框鼠标移动。 
        private void panel_Top_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (bolTop)
            {
                this.Top += e.Y - y;
                this.Left += e.X - x;
            }
        }
        //上边框鼠标释放。
        private void panel_Top_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.bolTop = false;
        }
        //左边框鼠标按下。
        private void panel_Left_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            x = e.X;
            this.bolLeft = true;
        }
        //左边框鼠标移动。
        private void panel_Left_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (bolLeft)
            {
                this.Width += x - e.X;
                this.Left += e.X - x;
            }
        }
        //左边框鼠标离开。
        private void panel_Left_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.bolLeft = false;
        }
        //右边框鼠标按下。
        private void panel_Right_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            x = e.X;
            this.bolRight = true;
        }
        //右边框鼠标移动。
        private void panel_Right_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (bolRight)
            {
                this.Width += e.X - x;
            }
        }
        //右边框鼠标离开。
        private void panel_Right_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.bolRight = false;
        }
        //下边框鼠标按下。
        private void panel_Bottom_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            y = e.Y;
            this.bolBottom = true;
        }
        //下边框鼠标移动。
        private void panel_Bottom_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (bolBottom)
            {
                this.Height += e.Y - y;
            }
        }
        //下边框鼠标离开。
        private void panel_Bottom_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.bolBottom = false;
        }
        //左下角鼠标按下。
        private void panelLeftCornu_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            x = e.X;
            y = e.Y;
            this.bolLeftCornu = true;
        }
        //左下角鼠标移动。
        private void panelLeftCornu_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (bolLeftCornu)
            {
                this.Width += x - e.X;
                this.Left += e.X - x;
                this.Height += e.Y - y;
            }
        }
        //左下角鼠标离开。
        private void panelLeftCornu_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            x = e.X;
            y = e.Y;
            this.bolLeftCornu = false;
        }
        //右下角鼠标按下。
        private void panelRightCornu_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.bolRightCornu = true;
        }
        //右下角鼠标移动。
        private void panelRightCornu_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (bolRightCornu)
            {
                this.Width += e.X - x;
                this.Height += e.Y - y;
            }
        }
        //右下角鼠标离开。
        private void panelRightCornu_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            this.bolRightCornu = false;
        }

        private void FormCusSkin_Load(object sender, EventArgs e)
        {
            menItemSkin2_Click(sender, e);//默认蓝色经典
        }

        private void menItemSkin1_Click(object sender, EventArgs e)
        {
            this.panel_Top.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\top.png");
            this.panel_Left.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\left.png");
            this.panel_Right.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\right.png");
            this.panel_Bottom.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\bottom.png");
            this.picMinimize.Image = Image.FromFile(strImagesPath + @"\images\purple\min.png");
            if (bol == true)
            {
                this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\purple\max.png");
            }
            else
            {
                this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\purple\max_normal.png");
            }
            this.picClose.Image = Image.FromFile(strImagesPath + @"\images\purple\close.png");
            this.menItemSkin1.Checked = true;
            this.menItemSkin2.Checked = false;
            this.menItemSkin3.Checked = false;
            this.menuStrip1.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\menu.gif");
            this.BackgroundImage = Image.FromFile(strImagesPath + @"\images\purple\background.gif");
        }

        private void menItemSkin2_Click(object sender, EventArgs e)
        {
            this.panel_Top.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\top.png");
            this.panel_Left.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\left.png");
            this.panel_Right.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\right.png");
            this.panel_Bottom.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\bottom.png");
            this.picMinimize.Image = Image.FromFile(strImagesPath + @"\images\blue\min.png");
            if (bol == true)
            {
                this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\blue\max.png");
            }
            else
            {
                this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\blue\max_normal.png");
            }
            this.picClose.Image = Image.FromFile(strImagesPath + @"\images\blue\close.png");
            this.menItemSkin1.Checked = false;
            this.menItemSkin2.Checked = true;
            this.menItemSkin3.Checked = false;
            this.menuStrip1.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\menu.gif");
            this.BackgroundImage = Image.FromFile(strImagesPath + @"\images\blue\background.gif");
        }

        private void menItemSkin3_Click(object sender, EventArgs e)
        {
            this.panel_Top.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\top.png");
            this.panel_Left.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\left.png");
            this.panel_Right.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\right.png");
            this.panel_Bottom.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\bottom.png");
            this.picMinimize.Image = Image.FromFile(strImagesPath + @"\images\green\min.png");
            if (bol == true)
            {
                this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\green\max.png");
            }
            else
            {
                this.picMaximize.Image = Image.FromFile(strImagesPath + @"\images\green\max_normal.png");
            }
            this.picClose.Image = Image.FromFile(strImagesPath + @"\images\green\close.png");
            this.menItemSkin1.Checked = false;
            this.menItemSkin2.Checked = false;
            this.menItemSkin3.Checked = true;
            this.menuStrip1.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\menu.gif");
            this.BackgroundImage = Image.FromFile(strImagesPath + @"\images\green\background.gif");
        }

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void panel_Top_DoubleClick(object sender, EventArgs e)
        {
            picMaximize_Click(sender, e);
        }
    }
}

 

转载于:https://www.cnblogs.com/kingboys/p/5667161.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值