在我的基於C#的應用程序中,我在我的應用程序中創建了一個具有自己的System.Forms.Timer對象的新窗體。第一次當我創建表單一切正常,我收到計時器滴答聲,沒有問題。在某些情況下,我必須殺死表單並創建一個新的(相同的)表單對象。表單以類似的方式創建。表格被正確加載,定時器被正確初始化,但是定時器不打勾。我嘗試了不同的方法,例如停止和配置計時器對象,並在FormLoad中創建一個新對象,但徒勞無功。我的朋友建議,可能我的新窗體對象不會收到Windows計時器消息(WM_TIMER)。我如何檢查消息循環在我的新窗體對象中是否工作正常?我做錯了什麼?爲什麼windows窗體計時器停止工作?
簡而言之,重新創建表單對象會以某種方式禁用計時器滴答。請指教。
代碼充滿了反思和傳播。我會盡可能地發佈信息。
代碼來創建一個新的表單對象
Form f = ReflectUtils.CreateClassFromAssembly(_TheAssembly, FormName) as Form;
if (null == f)
{
throw new ApplicationException("Failed to create Form: {");
}
_GUICancelEventHandler = new CancelEventHandler(GUIControlForm_Cancel);
f.Closing += _GUICancelEventHandler;
f.Show();
代碼來破壞形式
f.Close();
f.Dispose();
應用程序使用相同的代碼來創建新的表單對象。 formLoad事件一絲希望
timer1.Start();
定時器
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.timer1.Interval = 500;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
設計代碼這會有所幫助。
請顯示目前爲止的代碼。 – DonBoitnott
我已經添加了代碼。由於它的實現,我不確定它會有多大的幫助。我想我只是想了解Windows窗體計時器的一般行爲,如果有什麼明顯的東西我錯過了。 – Alok