【发布时间】:2019-05-11 14:51:13
【问题描述】:
我正在尝试在 C# Windows 窗体项目中使用面板和计时器制作一些动画。目前,有一个面板(在我的代码中称为“pnSideBlock”)位于窗口的左边缘。它旁边是一个按钮。
这个想法是,如果鼠标进入按钮,那么面板应该重新定位到窗口之外(在我的项目中,面板的宽度为 20px,因此我将其新位置设置为窗口外 20px)并将移动在计时器的帮助下再次进入它。一旦面板到达特定位置,在我的例子中是 0px,那么计时器应该停止并且面板应该停止移动。
但此刻,计时器一直在运行,这导致面板继续向右移动。
private void btnMainMenu_MouseEnter(object sender, EventArgs e)
{
pnSideBlock.Left = -20;
timerForAnim.Enabled = true;
if(pnSideBlock.Left == 0)
{
timerForAnim.Enabled = false;
}
}
private void btnMainMenu_MouseLeave(object sender, EventArgs e)
{
timerForAnim.Enabled = false;
}
private void timerForAnim_Tick(object sender, EventArgs e)
{
pnSideBlock.Left += 1;
}
【问题讨论】:
标签: c# windows winforms animation timer