首页 > 学院 > 开发设计 > 正文

C# 鼠标上划图片切换

2019-11-06 06:58:07
字体:
来源:转载
供稿:网友
所谓的变色就是当检测到鼠标上划或离开时触发事件,这里触发的事件就是把图片换掉1 创建一个窗体项目(本项目是在VS2015中进行创建)2 将窗体的FormBorderStyle属性设置为None,设置后窗体的标题栏将消失不显示3 添加2个panel空间,如下图布置,上面一个panel作为标题栏,下面一个panel作为窗体内容显示区4 添加3个pictureBox空间,作为最大化、最小化、关闭按钮的容器,如下图:5 准备最大化、最小化、关闭按钮的图片,如果需要边框也需要提前准备6 向项目中添加资源文件右击-->添加-->新项目-->资源文件-->添加资源-->图片或者可以通过向空间插入的图片的方法添加7 编写代码7.1 设置窗体加载时加载图片,找到窗体的加载(LOAD)事件7.2 将最大化、最小化、关闭按钮的Click事件都设置为pictureBox_Click7.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()));}7.6 鼠标上划事件/// <summary>/// 鼠标事件/// </summary>/// <param name="sender"></param>/// <param name="n"></param>/// <param name="ns"></param>public static PictureBox pic = new PictureBox();public void ImageSwitch(object sender, int n, int ns){pic = (PictureBox)sender;switch (n){case 0:{pic.Image = null;if (ns == 0){pic.Image = Resource1.最小化变色;}if(ns == 1){pic.Image = Resource1.最小化按钮;}break;}case 1:{pic.Image = null;if (ns == 0){pic.Image = Resource1.最大化变色;}if (ns == 1){pic.Image = Resource1.最大化按钮;}break;}case 2:{pic.Image = null;if (ns == 0){pic.Image = Resource1.关闭变色;}if (ns == 1){pic.Image = Resource1.关闭按钮;}break;}}}7.7 鼠标上划触发//最大化、最小化、关闭按钮的鼠标进入事件private void pictureBox_MoseEnter(object sender, EventArgs e){ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 0);}//最大化、最小化、关闭按钮的鼠标离开事件private void pictureBox_MoseLeave(object sender, EventArgs e){ImageSwitch(sender, Convert.ToInt16(((PictureBox)sender).Tag.ToString()), 1);}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表