用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就出错。。
自定义控件里是
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就出错。。
axflash.SuspendLayout();axflash.Movie=filename;
axflash.Visible=true;
axflash.Loop =true;
axflash.Play();
axflash.Size=new Size(this.Width,this.Height);axflash.ResumeLayout();
不过jingtao_zhou的方法没用。。
我Refresh,Update,Invalidate都用了。。private System.Timers.Timer tm=new System.Timers.Timer();
但我是直接找frm.Controls[0]来控制里面控件的啊,数据会显示,但是大小就不能控制,而且碰到Size变化就停止执行。。
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();
如果timer放在新开的线程里面
一般要通过Invoke来调用
我使用了System.Windows.Forms.Timer替代了System.Timers.Timer就解决了。。谢谢小熊,谢谢零下一度。。谢谢atv,谢谢华娱卫视。。