Winforms 如何使桌面布局面板滑到另一个面板下?

Winforms 如何使桌面布局面板滑到另一个面板下?,winforms,Winforms,在我的表单中,有一个顶部面板、一个底部面板和一个TableLayoutPanel,它们之间显示主要信息。当用户单击此TableLayoutPanel中的一行时,该项目被视为已被查看,下一个项目应向前滑动一个位置(第1行变为第2行,第2行变为第3行,第3行获得新数据)。我希望此幻灯片操作能够让用户直观地看到更改。您必须自己实现所需的绘制 您可以覆盖OnPaint,并让所有的绘制都由原始OnPaint处理,除非发生滑动 当滑动发生时,您可以使用表单上不存在的第二个TableLayoutPanel,它

在我的表单中,有一个顶部面板、一个底部面板和一个TableLayoutPanel,它们之间显示主要信息。当用户单击此TableLayoutPanel中的一行时,该项目被视为已被查看,下一个项目应向前滑动一个位置(第1行变为第2行,第2行变为第3行,第3行获得新数据)。我希望此幻灯片操作能够让用户直观地看到更改。

您必须自己实现所需的绘制

您可以覆盖
OnPaint
,并让所有的绘制都由原始
OnPaint
处理,除非发生滑动

当滑动发生时,您可以使用表单上不存在的第二个
TableLayoutPanel
,它包含所有4行(旧的3行+新的),并将其绘制到位图图像上(
Control.DrawToBitmap()

现在,您有了一个比滑动的
表格布局面板
更大的位图。。。现在,使用位图的所需部分来获得滑动动画。。。您可以从位图中获取所需的区域,而不是调用原始的
OnPaint
。。。当然,您必须首先计算所需的区域,这取决于所需的滑动动画速度、smoth开始和停止,或者您想到的任何东西