0

这段代码只是改变位置,而不是滑动。

我现在正在使用这个:

for (int i = 740; i == 740; i++)
{
   panel2.Location = new Point(panel2.Location.X - i, panel2.Location.Y);      
}

如何缓慢滑动面板?

4

2 回答 2

0

如果您只是要滑动面板,请尝试执行此操作

试试这个代码:

Panel panelArray = new Panel[];
Panel panel2 = panelArray[0];



for (int i = 0; i <= 100; i++)
{
    panel2.Location = new Point(panel2.Location.X - i, panel2.Location.Y);
    System.Threading.Thread.Sleep(10);
}
于 2013-09-27T13:04:43.530 回答
0

现在,正如我在评论中所说,您确实需要使用float值,因此您确实需要绘制它。但是,当前的实现只进行一次迭代。当前循环可以被翻译成这样:

panel2.Location = new Point(panel2.Location.X - 740, panel2.Location.Y);

考虑这样一个循环将其滑出:

for (int i = -(panel2.Width); i < 0; i++)
{
   panel2.Location = new Point(i, panel2.Location.Y);
}

该算法假设您已将 设置Location-它的宽度(例如 -740x),因此它在屏幕上根本不可见。反过来会隐藏它。

这仍然会有点不稳定,但它不会像您当前的代码一样隐藏它。

于 2013-09-27T12:54:17.017 回答