我正在使用C#编程语言。 我在Visual Studio 2012中创建了一个新的无边界Windows窗体。我有两个面板。第一个面板( panel1 )停靠在顶部,第二个面板( panel2 )停靠在左侧,其< em>可见状态是 false 。我还在panel1中添加了一个按钮( buttonMenu )并将其停靠在左侧。我想要实现的是,在 buttonMenu 点击,面板2从左侧滑动到其原始位置( 左侧停靠 )以及时buttonMenu 再次点击幻灯片。
我试图设置以下代码:
private void buttonMenu_Click(object sender, EventArgs e)
{
panel2.Visible = !panel2.Visible;
}
它有效,但我试图用动画滑动。
答案 0 :(得分:1)
更简单的方法是创建一个计时器,并在其Tick
事件中更改面板宽度,如此
private Timer timer = new Timer();
bool closing = false;
int desiredWidth = 300
private void ConfigureTimer()
{
timer.Tick += timer_Tick;
timer.Interval = 16;
}
private void timer_Tick(object sender, EventArgs e){
{
if(closing)
{
panel2.Width-=15;
if(panel2.Width < 0)
{
panel2.Width = 0;
timer.Stop();
}
}else{
panel2.Width+=15;
if(panel2.Width >= desiredWidth)
{
panel2.Width = desiredWidth;
timer.Stop();
}
}
}
private void SwitchPanelState()
{
closing = !closing;
timer.Start();
}
但是如果你想让你的生活更轻松,更面向对象,你应该创建一个具有指定行为的控件,并将其添加到表单中