0

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

4

1 回答 1

0

您必须自己实现所需的绘画。

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

当您发生滑动时,您可以花一秒钟TableLayoutPanel的时间在您的表单上,其中包含所有 4 行(旧 3 行 + 新行)并将其绘制到位图图像上(Control.DrawToBitmap()

现在你有一个比你的滑动更大的位图TableLayoutPanel...现在获取该位图并使用它的所需部分来获取您的滑动动画...而不是调用原始的OnPaint,您可以从位图中获取所需的区域.. .你当然必须首先计算所需的区域,这取决于你的滑动动画的所需速度,平滑的开始和停止,或者你想到的任何东西......

于 2012-07-18T12:25:35.700 回答