我使用MainForm ,new FormA.Show(); 然后再FormA里面在new FormB.show();同时我关闭FormA,Program application.show(new MainForm())报错修改内存,请问什么原因

解决方案 »

  1.   

    是不是 得加一个 formA.parent = mainform
    forB.parent = mainform
      

  2.   

    是不是FormA是主线程,所以不能关啊??
      

  3.   

    是不是你 调用FormA.Show()的时候已经把FormA关闭了
      

  4.   

    不行吧
    formb是在forma线程内实例化的,关闭forma的话,formb也会关闭的,
    可将forma隐藏起来,在退出formb时关闭forma
      

  5.   

    我刚开始也是这么做,但是满足不了我的需求,因为这两个Form都是播放Flash,如果不关闭的话,会有影响我用Flash的组件(axShockwaveFlash)不知道怎么关闭,,,
      

  6.   

    你可以先将主窗口的IsVisable属性设置为false在最后的时候再将其属性设置为true 
      

  7.   

    如果只想顺序的显示这三个窗口的话那么 就直接用Appplication.Run()依次的显示就可以了  这个方法是阻塞的 前一个不关闭不会运行下一个 
      

  8.   

    把窗体隐藏的 时候 把里面的flash  停
      

  9.   

    明显你是在A的Closed里加载的B SHOW,你A Close的时候就是回收内存了,你同时又要申请一块内存,肯定报错.你在MainForm那
    A.ShowDialog();
    B.ShowDialog();A不关闭是不会Show B的,这个方法是阻塞,B申请的内存在MainForm上.
      

  10.   

    搞定啦,用一个timer控件,mainForm 隐藏掉,show需要的Form b,在Tick事件里面关掉 Form a