[急求] C# Winform 不间断走马灯,多行文本,并且需要英文中文(36Px大字体)隔行循环
aRayn 2010-11-16 02:40:40 需求:
1、不间断走马灯效果(从下到上移动)
2、内容显示形式为英文中文隔行循环,而且英文和中文用不同字体,字体大于36Px(一号)
3、有循环次数、速度设置
注:数据量至少需要支持100条(英文50行+中文50行)
我试过用以下方法
1、Panel+N*Label+Timer, 把所有Label装载到一个Panel中,然后由底部向顶部滚动Panel. 实际效果:数据多了就会卡(因为动态加载了太多Label),滚动效果不平滑,而且依赖于CPU和内存等硬件的效能。
2、Panel+List<Label>+Label+Timer, 把Label赋值给List<Label>,然后再动态把List<Label>由下往上逐个把List<Label>加载到Panel中,通过Timer改变每个List<Label>的x坐标值, 产生滚动效果. 实际效果:虽然比方法一看上去少用了Label,但由于每次Timer.Tick都要计算N次Label.x坐标值,再加上Label字体比较大, 数据多的时候效率非常低.
3、webBrowser, 把数据写入Html中,然后利用Javascript来运行走马灯. 实际效果:这种方法实现起来最简单,加载数据也很快,但还是出现数据多了会有点卡, 大概还是因为字体较大, CPU占用比较明显.
没办法了,比较着急,跪求高手赐教。看了坛子很多思路是用 Theard + GDI 来实现,不知道这种方法是否能解决效率(卡)问题?