1.首先在form中添加一个Panel,
2.Load事件中添加如下代码:
panel1.Margin = new System.Windows.Forms.Padding(0, 0, 0, 0);
panel1.Location = new Point(panel1.Location.X, 10-panel1.Height);
3.添加Panel的mousehover,mouseleave事件
4.定义变量:
bool updown = true;
int adddistance = 3;
bool ismoving = false;
System.Windows.Forms.Timer timer = new Timer();
private void panel1_MouseHover(object sender, EventArgs e)
{
if (!ismoving)
if (this.panel1.Location.Y <= 10 - this.panel1.Height)
Animation(true);
}
private void panel1_MouseLeave(object sender, EventArgs e)
{
Animation(false);
}
5.动画效果:
private void Animation(bool isdown)
{
updown = isdown;
ismoving = true;
timer = new Timer();
timer.Interval = 50;
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
if (updown)//show
if (this.panel1.Location.Y <= 0)
{
this.panel1.Location = new Point(this.panel1.Location.X,
this.panel1.Location.Y + adddistance);
}
else
{
//
timer.Dispose();
ismoving = false;
}
else//hide
{
if (this.panel1.Location.Y >= 10-panel1.Height)
this.panel1.Location = new Point(this.panel1.Location.X,
this.panel1.Location.Y - adddistance);
else
{
timer.Dispose();
ismoving = false;
}
}
}
只是简单的原理实现,回头做好整体后在把源码贴上来吧。。。