C#:在winform上做好了字幕滚动效果,但字幕滚动时闪烁?

「已注销」 2010-08-24 12:01:28
我做了一个字幕滚动效果,但字幕在滚动时会不时地闪烁!!请问怎么解决啊?
我的方法是用Drawstring的方法、、、、、、不断擦除,不断绘制!
...全文
541 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-08-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dream83619 的回复:]
设置Form中的属性 DoubleBuffered=true; (使用双缓冲)
[/Quote]
正确。
Dream83619 2010-08-24
  • 打赏
  • 举报
回复
设置Form中的属性 DoubleBuffered=true; (使用双缓冲)
chenxicheng 2010-08-24
  • 打赏
  • 举报
回复
timer控件
周期时间变短
移动距离变小
具体还的看实际设备现实效果!
wulala789 2010-08-24
  • 打赏
  • 举报
回复
用timer检测
happyer_longlong 2010-08-24
  • 打赏
  • 举报
回复
试试 线程,
l13873666736 2010-08-24
  • 打赏
  • 举报
回复
闪是因为速度慢
如果用LABEL,再改变它的位置,应该会好一点
jsjhj2008 2010-08-24
  • 打赏
  • 举报
回复
用线程来控制字的颜色!
「已注销」 2010-08-24
  • 打赏
  • 举报
回复
我有用过label,也尝试过将timer的间隔调小一点,也用过DoubleBuffered=true;,这三种我也同时用过,但字幕在滚动的是还是有轻微的闪烁、、、、、、、哈哈!
至于coollangzi(风)的方法我没试过,我试一下!而且coollangzi(风)也猜对了,我的字符串不是在onpaint里面写的,而是在timer里面写的、、、、、、哈哈,因为我还是个菜鸟,嘛~~~~~~
Jck 2010-08-24
  • 打赏
  • 举报
回复
#region Timer的事件
void ScrollTreeNodeTimer_Tick(object sender, EventArgs e)
{
SrcollFont(TitleTreeView.Nodes[0]);

ScrollTreeNodeTimerIndex = TitleTreeView.Nodes[0].Text.Length;

if (ScrollTreeNodeTimerIndex <= 25)
{
TitleTreeView.Nodes[0].Text = TitleTreeView.Nodes[0].Text.Substring(0, TitleTreeView.Nodes[0].Text.Length) + " " + TreeTopNodeText;
}
ScrollTreeNodeTimerIndex--;

}
#endregion

#region 滚动字体
public void SrcollFont(TreeNode x)
{
string temp = x.Text.Substring(1, x.Text.Length - 1);
x.Text = temp;
}
#endregion
我以前写过的一个。就是让TreeView里的字体跟着Timer变化
zierben 2010-08-24
  • 打赏
  • 举报
回复
我想问你是如何擦除的?
如果你只是 写字符串的话, 在它的onpaint里写好代码,
然后每次用refresh();

不至于闪的!
你可能不是在paint中写,而是自己用timer写的,这样可能会闪。

whisht 2010-08-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dream83619 的回复:]
设置Form中的属性 DoubleBuffered=true; (使用双缓冲)
[/Quote]

this

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧