关于使用timer造成窗体闪烁

IT_Fish 2010-02-28 10:54:22
各位不知道有没有遇到过这样的情况:
因为窗体布局需要(因为在窗体可以改变该校或者自适应屏幕大小的需要,使label的位置固定在相对窗体特定的地方),我使用了tablelayoutpanel作为容器,然后来固定label的位置,但是当使用timer去定时刷新(1秒10次)数据时,会造成窗体不断闪烁。

大家有没有好的办法?
...全文
621 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT_Fish 2010-03-01
  • 打赏
  • 举报
回复
还有什么可以参考的建议么?
IT_Fish 2010-03-01
  • 打赏
  • 举报
回复
winform有updatePanel?
IT_Fish 2010-03-01
  • 打赏
  • 举报
回复
我试过了,没有背景图片的确不会闪烁,可是没办法一定要用啊
iGouzy 2010-03-01
  • 打赏
  • 举报
回复
我想应该是背景图片的问题
IT_Fish 2010-03-01
  • 打赏
  • 举报
回复
我把详细的步骤写下吧

1.form
2. form 加入背景 broundimagelayout: Stretch
3.加入tablelayoutpanel,DOCK:fill
4. 在tablelayoutpanel加入label,DOCK:fill
4. 加timer
5.加button

button触发timer事件


private void btnBegin_Click(object sender, EventArgs e)
{
if (go)
{
lblUser.Text = lblUser.PointToScreen(new Point(0, 0)).ToString();
DataSet myds = new DataSet();
myds.ReadXml("List.xml");

dTable = myds.Tables[0];
myTimer.Start();
go = false;
btnBegin.Text = "停止" + lblUser.Text;
myTimer.Tick += new EventHandler(timer1_Tick);
}
else
{
myTimer.Enabled = false;
// to do delete node in xml
btnBegin.Text = "开始" + lblUser.Text;
lblList.Text += lblUser.Text + "\r\n";
go = true;
}
}

private void timer1_Tick(object sender, EventArgs e)
{
lblUser.Text = "";
if (dTable != null && dTable.Rows.Count > 0)
{
DataTotal = dTable.Rows.Count;
RandomNumber = new Random((int)DateTime.Now.Ticks);
randomdata = RandomNumber.Next(DataTotal);
lblUser.Text = dTable.Rows[randomdata].ItemArray.GetValue(0).ToString();
}
}
王子样 2010-03-01
  • 打赏
  • 举报
回复
引用 5 楼 yangfeiyang 的回复:
楼主是不是在定时处理程序里面写了控件的位置设定的语句了,所以导致要定位的控件闪烁。


估计是。。。
yafeya 2010-03-01
  • 打赏
  • 举报
回复
楼主是不是在定时处理程序里面写了控件的位置设定的语句了,所以导致要定位的控件闪烁。
KK3K2005 2010-03-01
  • 打赏
  • 举报
回复
一般用控件的锚点设置就可以定位相对位置了
不行的话 设置控件位置的逻辑也应该写在 需要改变位置的事件中 比如onresize onload
IT_Fish 2010-03-01
  • 打赏
  • 举报
回复
大家都睡觉去了?
算了,明天再说了
Justin-Liu 2010-03-01
  • 打赏
  • 举报
回复
那结贴吧 JF~~~~~~~~~~~~~~~~~~~~~
IT_Fish 2010-03-01
  • 打赏
  • 举报
回复
终于搞定了~~~

的确是背景图造成的问题

把背景图在PS里面重新加工成背景为透明的PNG格式就可以消除这样的问题了
Teddy2010 2010-02-28
  • 打赏
  • 举报
回复
少了一个updatePanle控件?

111,097

社区成员

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

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

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