C# 窗体的最大化、最小化、关闭按钮的自定义
2017-03-05 20:19
701 查看
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()));
}
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()));
}
相关文章推荐
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件 .
- C# WinForm开发系列之自定义无边框窗体(最大化,最小化,关闭,拉伸和移动的相关知识)
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件【整理】
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
- 使C# 窗体的关闭按钮、最小化、最大化按钮不可用
- C#窗体皮肤制作(二):创建窗体库项目以及最小化、最大化、关闭按钮的实现
- C#窗体编程不显示最小化、最大化、关闭按钮的方法
- 使C# 窗体的关闭按钮、最小化、最大化按钮不可用
- c#捕获窗体的最大化最小化按钮的事件
- Extjs4自定义关闭,最大化,最小化按钮接听
- Delphi 自定义窗体(最大化、最小化、关闭、窗体的移动)
- C# Winform 捕获窗体的最小化和最大化事件、关闭按钮事件
- Qt之自定义界面添加最小化、最大化和关闭按钮
- C# 窗体点击关闭按钮时最小化到托盘
- c#捕获窗体的最大化最小化按钮的事件
- c#捕获窗体的最大化最小化按钮的事件(转)
- 在mfc中,如何设置一个隐藏菜单栏,工具栏,状态栏,最大化、最小化、关闭按钮的窗体
- c#捕获窗体的最大化最小化按钮的事件
- 窗体最大化、最小化、隐藏、关闭功能及程序退出功能的按钮实现