请教下,如何用winform做出效果如团购网站,鼠标移入一个控件(如panel A),则在panel A上透明显示另外一个panel B,而且透明显示的panel B上还有其它控件可以操作,鼠标移出panel A区域则隐藏panel B。
本人使用了鼠标事件去控制,但是一直存在不断闪动的问题(知道问题出在鼠标在panelA与panelB之间不停切换),查了不少资料,还是未能解决。请教高手!注:panel A 和panel B的位置如图一样,panel B 在panel A的 Button位置鼠标控件winform隐藏显示
鼠标移入 panelA 的时候增加判断条件:panelB 未显示
mouseleave事件中隐藏透明的panel当鼠标进入panelA的时候,显示panelB,当鼠标移动到panelB上的时候,并没有移动出panelA的边界,那么panelB不会隐藏。
其中pnlVideo为panelA,pnlEdit为panelB,有一点需要补充的是前面有说过,panelB上还有按钮控件,所以移动鼠标到各个按钮上时,切换过程中就会对应闪动一次 private void pnlVideo_MouseMove(object sender, MouseEventArgs e)
{
Point curToClientPoint = this.PointToClient(MousePosition); if (this.Width > curToClientPoint.Y)
{
pnlEdit.Visible = true;
}
else
{
pnlEdit.Visible = false;
}
} private void pnlVideo_MouseLeave(object sender, EventArgs e)
{
if (pnlEdit.Visible)
{
Point curToClientPoint = this.PointToClient(MousePosition); if (this.Width < curToClientPoint.X || curToClientPoint.X <= 0 || this.Height < curToClientPoint.Y || curToClientPoint.Y <= 0)
{
pnlEdit.Visible = false;
}
}
}