在C#窗体程序中,关于图标按钮,怎么实现鼠标按下后显示区别于鼠标离开、经过时显示的图标?

在C#窗体程序中,关于图标按钮,鼠标经过的时候会变换图片,鼠标一离开就会还原回来。可是如果我点击了某个按钮,就应该一直都是变换了颜色的呀,现在的问题是,不管我点没点那个图... 在C#窗体程序中,关于图标按钮,鼠标经过的时候会变换图片,鼠标一离开就会还原回来。可是如果我点击了某个按钮,就应该一直都是变换了颜色的呀,现在的问题是,不管我点没点那个图片,只要鼠标一离开,图片都会变回之前的了。

也就是在单击了之后,鼠标经过,离开都不再变换图标,直到点击了其它按钮时,刚才点击的按钮图标才变成鼠标离开时显示的图标。有什么办法能解决呢 ?

窗体加载时 :

private void frm_main_Load(object sender, EventArgs e)
{

button1.Image = Image.FromFile(Application.StartupPath +"\\button1_1.png");
}

鼠标滑过button1时:
private void button1_MouseMove(object sender, EventArgs e)
{
button1.Image = Image.FromFile(Application.StartupPath +"\\button1_2.png");

}

鼠标离开时:

private void button1_MouseLeave(object sender, EventArgs e)
{
button1.Image = Image.FromFile(Application.StartupPath +"\\button1_1.png");

}
当单击鼠标时我是这样写的:

private void button1_Click(object sender, EventArgs e)
{
button1.Image = Image.FromFile(Application.StartupPath +"\\button1_3.png");
}
但是像我这样写的话,运行的时候单击时并不会显示button1_3.png,显示的还是button1_2.png,也就是鼠标滑过时显示的图标,而且鼠标离开时会显示button1_1.png。

请问要怎么改才能在单击后显示button1_3.png,并且鼠标离开、滑过都不会再变换图标,直到单击了其他的button按钮,比如button2,那button2的单击代码要怎么写呢?
private void button2_Click(object sender, EventArgs e)
{
//这里要怎么写?
}

请详细一点讲解,并且附上代码,谢谢指导!
展开
 我来答
lolodjc
2012-10-31
知道答主
回答量:4
采纳率:0%
帮助的人:6180
展开全部
一个全局变量记录被按下的按钮控件对象
1设置所有按钮颜色为灰色
2所有按钮的鼠标进入事件相同,检测被按下按钮是否为该按钮,不是的话将该按钮的背景色改为深灰
3所有按钮的鼠标移出事件相同,检测被按下按钮是否为该按钮,不是的话将按钮的背景色设置为灰色
4按钮点击事件,执行方法1,并将触发事件的按钮背景色设为黑色,将全局变量记录被按下的按钮设置为该按钮
lin2491
2012-11-02 · 超过15用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:52.4万
展开全部
设置一个把所有button背景变回原来的方法
private void SetAllButton()
{
bt1.backimage="";
或者bt1.backcolor=---
bt2
bt3
等等
}
在所有button鼠标点击事件中加这个方法,再在所有鼠标cilick事件中,把本点击的button的背景图片或背景颜色修改;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
君不见杀手
推荐于2016-05-30 · TA获得超过141个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:237万
展开全部
。。既然你要这样做button不如直接放一个label上去在label中加图片自制button 设置click事件
mousein事件 mouseleave事件
再设一个bool值用于判断是否处于被点击状态
bool clicked=false;
private void label2_Click(object sender, EventArgs e)
{
clicked=true;
label2.Image = Image.FromFile(Application.StartupPath +"\\button1_3.png");

}
在mousein和leave事件里加入clicked的判断
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式