龙空技术网

自定义最大化、最小化和关闭按钮 -C#学习进阶

天道格律随笔 302

前言:

目前大家对“获取或设置控件名称的属性是________”大约比较看重,同学们都需要分析一些“获取或设置控件名称的属性是________”的相关资讯。那么小编也在网上网罗了一些对于“获取或设置控件名称的属性是________””的相关内容,希望看官们能喜欢,大家快快来了解一下吧!

实例说明

用户在制作应用程序时,为了使用户界面更加美观,一般都自已设计窗体的外观,以及窗体的最大化、最小化和关闭按钮。本实例通过资源文件来存储窗体的外观,及最大化、最小化和关闭按钮的图片,再通过鼠标移入、移出事件来实现按钮的动态效果。

技术要点

本实例使用资源文件来存储窗体外观、“最大化”、“最小化”和“关闭”按钮的图片,再用窗体的WindowState属性实现最大化、最小化和还原的操作。下面对其进行详细说明。

(1)资源文件

在加载图片时,如果是以本地资源进行加载,那么,在运行可执行文件时必须在当前目录下存放指定的图片,这样,会给用户带来不必要的麻烦,为了解决这一问题,本实例用资源文件来存储相关的图片。下面对资源文件的应用进行详细说明。

1.将图片存入资源文件中

将图片存入资源文件中的相关步骤如下:

①在“解决方案资源管理器”中打开Properties中的Resources.resx文件。

②在打开的Resources.resx文件中单击“添加资源”右侧的向下箭头,在下拉项中选择“添加现有文件”,弹出“将现有文件添加到资源中”窗体,在该窗体中将指定的图片添加到资源文件中。

2.读取资源文件中的图片

读取资源文件中的图片主要是用Properties命名空间下的Resources资源类。实现代码如下:

pictureBox.Image = Properties.Resources.最大化按钮;

注意:将图片添加到Resources.resx文件后,必须对整个项目进行保存,否则无法在Resources资源类中调用已添加的图片。

(2)WindowState属性

该属性用于获取或设置窗体的窗口状态。其常用语法如下:

public FormWindowState WindowState { get; set; }

l 属性值:FormWindowState,表示窗体的窗口状态。

FormWindowState的成员如表:

成员

说 明

Maximized

最大化的窗口

Minimized

最小化的窗口

Normal

默认大小的窗口

FormWindowState的成员及说明

例如,本实例中用WindowState属性使窗体最大化。代码如下:

Frm_Tem.WindowState = FormWindowState.Maximized;
开发步骤

(1)新建一个Windows应用程序,将其命名为“自定义最大化、最小化和关闭按钮”,默认窗体名为Form1,将Form1窗体的FormBorderStyle属性设置为None。

(2)Form1窗体主要用到的控件及说明如表所示。

Form1窗体主要用到的控件及说明:

控件名称

属性设置

说 明

panel_Title

Dock属性设置为Top

显示窗体标题栏

panel_ALL

Dock属性设置为Fill

显示标题栏下面的窗体

pictureBox_Min

Tag属性设置为0

显示最小化按钮

pictureBox_Max

Tag属性设置为1

显示最大化按钮

pictureBox_Close

Tag属性设置为2

显示关闭按钮

(3)主要程序代码。

在Form1窗体加载时,将资源文件中的图片添加到相应的PictuteBox和Panel控件中,代码如下:

private void Form1_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.关闭按钮;                     //显示关闭按钮的图片}在“关闭”按钮的鼠标移入、移出和单击事件中调用自定义方法FrmClickMeans和ImageSwitch,以实现按钮的相关操作。实现代码如下: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);   //设置鼠标移出后按钮的图片}

技巧:由于“最小化”、“最大化”和“关闭”按钮所使用的事件相同,所以将“最小化”和“最大化”按钮的事件指向“关闭”按钮的相关事件。

自定义方法ImageSwitch主要是在鼠标移入和移出控件时对图片进行切换。主要代码如下:

#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

自定义方法FrmClickMeans主要用于设置窗体的最大化、最小化和关闭按钮的操作。主要代码如下:

#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

标签: #获取或设置控件名称的属性是________