在我的表单上,我在它们之间有一个顶部面板、一个底部面板和一个 TableLayoutPanel,其中显示了主要信息。当用户单击此 TableLayoutPanel 中的一行时,该项目被视为已查看,下一个项目应向前滑动一个位置(第 1 行变为第 2 行,第 2 行变为第 3 行,第 3 行获取新数据)。我希望用户通过此幻灯片操作来可视化更改。
问问题
209 次
1 回答
0
您必须自己实现所需的绘画。
您可以覆盖OnPaint
并让所有绘画都由原始绘画处理,OnPaint
除非您的滑动应该发生......
当您发生滑动时,您可以花一秒钟TableLayoutPanel
的时间在您的表单上,其中包含所有 4 行(旧 3 行 + 新行)并将其绘制到位图图像上(Control.DrawToBitmap()
)
现在你有一个比你的滑动更大的位图TableLayoutPanel
...现在获取该位图并使用它的所需部分来获取您的滑动动画...而不是调用原始的OnPaint
,您可以从位图中获取所需的区域.. .你当然必须首先计算所需的区域,这取决于你的滑动动画的所需速度,平滑的开始和停止,或者你想到的任何东西......
于 2012-07-18T12:25:35.700 回答