解决方案 »

  1.   

    逻辑错了, 应该是发生报警的时候,通知主窗体,然后timer 来交替实现报警功能
      

  2.   

    主窗体注册子窗体报警事件,当子窗体报警事件触发时,主窗体报警事件处理启动timer控件实现图片切换
      

  3.   

    第一步,写好两个窗体 Form1  Form2第二步,Form1里面有一个timer控件 两个按钮  一个picturebox控件 和imagelist控件;form2里面有一个按钮第三步,一个按钮用来控制timer的启动与关闭 还有一个按钮弹出Form2窗体第四步,timer控件的tick事件里面写pictuerbox里图片的切换事件第五步,在form2 里面定义一个委托  public delegate void GreetingDelegate();        public GreetingDelegate create_subway;第六步,在form2里面按钮的单击事件里面写上create_subway;就可以了。第七步,在form1里面弹出form2窗体按钮的单击事件里面f1.create_subway=click;第八步,click是启动计时器的方法,form1的另一个按钮就是调用这个方法ok  完成
      

  4.   

     public void OpenWindow(string ChildTypeString)
            {
                Form myChild = null;            if (!ContainMDIChild(ChildTypeString))
                {
                    //   Get   current   process   assembly   
                    Assembly assembly = Assembly.GetExecutingAssembly();
                    //   Create   data   type   using   type   string 
                    Type typForm = assembly.GetType(ChildTypeString);
                    //   Create   object   using   type's   "InvokeMember"   method   
                    Object obj = typForm.InvokeMember(
                            null,
                            BindingFlags.DeclaredOnly |
                            BindingFlags.Public | BindingFlags.NonPublic |
                            BindingFlags.Instance | BindingFlags.CreateInstance,
                            null,
                            null,
                            null);
                    //   Show   child   form  
                    if (obj != null)
                    {
                        myChild = obj as Form;
                        myChild.FormClosed += new FormClosedEventHandler(myChild_FormClosed);
                        myChild.StartPosition = FormStartPosition.CenterScreen;
                        myChild.MdiParent = this;
                        myChild.Show();
                        myChild.Focus();
                    }
                }
            }
    项目中原来创建新窗口的代码是这么写的,不是用new的方式,强行改为new的方式也不可取,因为项目中有一个frmParent的基类,所有的子窗口都基于frmParent的基类