C# 鼠标事件问题
在一个panel上加了一个按钮和标签等其他控件,并在panel上加了MouseEnter和MouseLeave事件,分别改变panel的颜色为蓝色和黄色。效果是当鼠标进入...
在一个panel上加了一个按钮和标签等其他控件,并在panel上加了MouseEnter和MouseLeave事件,分别改变panel的颜色为蓝色和黄色。
效果是当鼠标进入panel时,panel的颜色改为了蓝色,但是当鼠标进入按钮和标签等其他控件的时候,触发了panel上的MouseLeave事件,panel的颜色变为了黄色,但这并不是我要的效果,我要的是鼠标进入panel就一直是蓝色,无论鼠标是否在panel的其他控件上面。也就是说当鼠标进入panel里面的其他空间,让其panel的MouseLeave失效,在真正离开panel的时候才进行MouseLeave事件。 展开
效果是当鼠标进入panel时,panel的颜色改为了蓝色,但是当鼠标进入按钮和标签等其他控件的时候,触发了panel上的MouseLeave事件,panel的颜色变为了黄色,但这并不是我要的效果,我要的是鼠标进入panel就一直是蓝色,无论鼠标是否在panel的其他控件上面。也就是说当鼠标进入panel里面的其他空间,让其panel的MouseLeave失效,在真正离开panel的时候才进行MouseLeave事件。 展开
3个回答
2014-09-04 · 知道合伙人互联网行家
关注
展开全部
MouseLeave,MouseEnter只针对控件的可见部分,这个没法改
你要想不触发事件
你要想实现你要的效果,就将里面的控件也写上MouseEnter事件
如:
private void panel_MouseLeave(object sender, EventArgs e)
{
this.panel.BackColor = Color.Yellow;
}
private void panel_MouseEnter(object sender, EventArgs e)
{
this.panel.BackColor = Color.Blue;
}
private void button1_MouseEnter(object sender, EventArgs e)
{
this.panel.BackColor = Color.Blue;
}
private void label_MouseEnter(object sender, EventArgs e)
{
this.panel.BackColor = Color.Blue;
}
你要想不触发事件
你要想实现你要的效果,就将里面的控件也写上MouseEnter事件
如:
private void panel_MouseLeave(object sender, EventArgs e)
{
this.panel.BackColor = Color.Yellow;
}
private void panel_MouseEnter(object sender, EventArgs e)
{
this.panel.BackColor = Color.Blue;
}
private void button1_MouseEnter(object sender, EventArgs e)
{
this.panel.BackColor = Color.Blue;
}
private void label_MouseEnter(object sender, EventArgs e)
{
this.panel.BackColor = Color.Blue;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以宰label和button上也加mouseenter事件,让他变成蓝色啊。
或者在mouseleave事件中加判断,判断是否在label或button下。
或者在mouseleave事件中加判断,判断是否在label或button下。
追问
如果我的panel里面有很多控件,每个控件写个事件,不是特别麻烦吗?
追答
那就用第二种方法啊。用foreach遍历所有panel上的控件判断啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询