Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#如何滑动面板_C#_Panel_Slide - Fatal编程技术网

C#如何滑动面板

C#如何滑动面板,c#,panel,slide,C#,Panel,Slide,此代码只是更改位置,而不是滑动 我现在正在使用这个: for (int i = 740; i == 740; i++) { panel2.Location = new Point(panel2.Location.X - i, panel2.Location.Y); } 如何才能缓慢滑动面板?现在,正如我在评论中所说,您确实需要使用float值,因此您确实需要绘制它。但是,当前的实现只进行了一次单次迭代。当前循环可以转换为: panel2.Location = new Poin

此代码只是更改位置,而不是滑动

我现在正在使用这个:

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

如何才能缓慢滑动面板?

现在,正如我在评论中所说,您确实需要使用
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);
}
for(inti=-(panel2.Width);i<0;i++)
{
面板2.位置=新点(i,面板2.位置.Y);
}
该算法假设您已将
位置设置为其宽度的
-
(例如,-740x),以便它在屏幕上不可见。反之则会隐藏它


这仍然会有点起伏,但它不会像您当前的代码那样隐藏它。

如果您只是想滑动面板,请尝试这样做

请尝试以下代码:

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);
}
Panel-panelArray=新面板[];
Panel panel2=panelArray[0];

对于(int i=0;i这是WinForms还是WPF?这可能会比你想要的更复杂。看,就像电影一样,你需要更多的帧。然而,
位置
TRBL
属性都是
int
值。你需要
浮动
值,这样你就可以构建那种效果。这意味着你实际上必须绘制它。需要考虑两件事:(1)如果您在主GUI线程上执行此操作,那么它将阻塞,直到循环完成,这就是为什么您看不到它的幻灯片。您需要在单独的线程中执行此操作,并告诉GUI线程何时更新。(2)即使您使用另一个线程,它也会发生得非常快,所以您不会注意到。请将其速度减慢一点,例如,每次设置新值时都要等待1毫秒。@neoistheone,像素位置的浮点值?这听起来不是个好主意:)但是自定义绘制方法可能会起作用。没有为这种“动画”尝试过它尽管如此。@LarsKristensen,你知道我会这么说,除了
点f
类的存在正是因为这个原因。:d-像素
和点
之间有很大的区别。是的,不错。你的东西像我希望的那样工作。多谢了,浮点值在这其中起到了什么作用?据我所知,你是s直到使用整数和点对象:)@LarsKristensen,我想我在开始回答问题时已经说得很清楚了。我不打算在此基础上构建一个GDI+示例。我给OP提供了一个可能的中间解决方案。根据OP的评论,我做到了。