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 鼠标点击事件的获取
///
/// 鼠标对最大化、最小化、关闭按钮的点击事件
///
///
///
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()));
}







你可能感兴趣的:(C#)