(Winfrom,100分!)动态生成页面的定时刷新问题

boarduck 2006-07-10 04:01:55
用ShowDialog打开一个动态页面,页面里的控件(一般的自定义控件)都是动态生成,为何我用Timer设定控件定时刷新里面控件时出错,调试时是到改变Size时候出错。。
自定义控件里是
private AxShockwaveFlashObjects.AxShockwaveFlash axflash;
public void LoadData()
{
axflash.Movie=filename;
axflash.Visible=true;
axflash.Loop =true;
axflash.Play();
axflash.Size=new Size(this.Width,this.Height);
}
初始化时控件加载了数据,而用其他按钮控制可以刷新控件,但是用Timer来LoadData()就不行,到了更改Size就出错。。


...全文
285 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
boarduck 2006-07-10
  • 打赏
  • 举报
回复
解决了!
我使用了System.Windows.Forms.Timer替代了System.Timers.Timer就解决了。。

谢谢小熊,谢谢零下一度。。谢谢atv,谢谢华娱卫视。。
jingtao_zhou 2006-07-10
  • 打赏
  • 举报
回复
个么timer你放在哪里?
如果timer放在新开的线程里面
一般要通过Invoke来调用
mmens 2006-07-10
  • 打赏
  • 举报
回复
mark
boarduck 2006-07-10
  • 打赏
  • 举报
回复
可能不是布局问题吧。。frm,UI,axflash的SuspendLayout,ResumeLayout都设置了还是没用。。

一旦碰到activex控件就会停止。。用picturebox就没问题。。

我想问一下,我动态生成的按钮点击改变数据没问题,但是Timer触发的就有问题。。难道真的是线程。。T_T
wzpwork 2006-07-10
  • 打赏
  • 举报
回复
友情UP,
jingtao_zhou 2006-07-10
  • 打赏
  • 举报
回复
个么再试试
frm.SuspendLayout();
axflash.SuspendLayout();

axflash.Movie=filename;
axflash.Visible=true;
axflash.Loop =true;
axflash.Play();
axflash.Size=new Size(this.Width,this.Height);

axflash.ResumeLayout();
frm.ResumeLayout();


boarduck 2006-07-10
  • 打赏
  • 举报
回复
谢谢。。
不过jingtao_zhou的方法没用。。
我Refresh,Update,Invalidate都用了。。

private System.Timers.Timer tm=new System.Timers.Timer();
但我是直接找frm.Controls[0]来控制里面控件的啊,数据会显示,但是大小就不能控制,而且碰到Size变化就停止执行。。
代码蜗牛sky 2006-07-10
  • 打赏
  • 举报
回复
你用的是哪个Timer?如果Timer不在创建axflash的线程上时,当调用axflash.Size=new Size(this.Width,this.Height);的时候的确会出错的。改成通过委托来调用axflash.Size=new Size(this.Width,this.Height);所在的方法就可以了。
jingtao_zhou 2006-07-10
  • 打赏
  • 举报
回复
试试
axflash.SuspendLayout();

axflash.Movie=filename;
axflash.Visible=true;
axflash.Loop =true;
axflash.Play();
axflash.Size=new Size(this.Width,this.Height);

axflash.ResumeLayout();

110,534

社区成员

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

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

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