当前位置: 代码迷 >> C# >> 请教怎么控制不同from窗体中的timer控件执行的方法不报错
  详细解决方案

请教怎么控制不同from窗体中的timer控件执行的方法不报错

热度:82   发布时间:2016-05-05 04:42:29.0
请问如何控制不同from窗体中的timer控件执行的方法不报错。
在C# Winfrom 项目中,有三个from窗体即form1和from2以及from3。
from1窗体中包括一个timer1控件,from2窗体中包括一个timer1控件,from3窗体中包括一个timer1控件。
其中from1中的timer1控件用来控制from2以及from3窗体的显示与关闭。

目前存在一个问题,如果在关闭from2窗体时,有可能导致from2窗体中timer1控件中执行的方法报错。同样如果在关闭from3窗体时,同样可能存在timer1控件中执行的方法报错。
请问怎么样能够使from1窗体中的timer1控件,控制from2、from3窗体的显示与关闭的过程中保证from2、from3窗体的timer1控件执行的方法不报错。

注:三个from窗体中的timer1.Interval =1000(1秒钟).

大致附from2窗体中timer1控件中执行的方法如下:

  MyInvoke mi = new MyInvoke(SetPanel);

 BeginInvoke(mi, new object[] { ptrWnd });  


 public void SetPanel(IntPtr ptrWnd)
{
  API.SetParent(ptrWnd, this.panel1.Handle);

  API.ShowWindow(ptrWnd, API.SW_MAXIMIZE);
}

------解决思路----------------------
首先那个叫FORM,其次。。你的方法可以写在公共代码中,或者隐藏FORM
------解决思路----------------------
谁知道到报什么错?你的调试呢?

贴这么多东西,你就没有贴出一个凡是编程开发的人都应该会的调试画面来。
------解决思路----------------------
form2,form3中timer控件报错和form1没有必然的联系吧,问题应该出在你的timer事件中,把代码发出来看看
------解决思路----------------------
看你的代码似乎在自己写MDI处理。。。建议你看看MDI方面的知识。
另外处理报错可以添加try-catch模块,而且你也没说是让事件执行完,还是直接中断。。。
在一个,提倡二楼所说的方法,提炼出一个控制类,timer什么的都写在里面,form只复制显示即可
  相关解决方案