具体描述如下:
   在一个窗体上(假设为StartForm)提供好几个按钮,每个按钮对应不同的功能,点击每个按钮可以打开不同的窗体(比如FormA、FormB、FormC等)。现在我只做了一个FormA功能,但是现在要求加入FormB、FormC功能,这几个是并列关系。希望把这几个功能加到同一个程序里,比如提供一个窗体,点击不同的按钮可以进入不同的功能。我不知道该用什么方法实现比较好呀,是把FormA/B/C做成单独的程序然后在StartForm里调用呢?还是在同一个项目文件里调用窗体呢?    这些FormA、FormB、FormC里又有“下一步”“上一步”之类的按钮,就是按下之后会跳出新窗体,并且允许返回到上一个窗体。比如在FormA里要实现下一步,我都是直接new一个新窗体,并且hide当前窗体,整个FormA的功能实现后就退出应用程序。我现在担心的是,如果我在StartForm里是调用项目文件里的窗体,那我退出应用程序就会退出StartForm了。而直接调用应用程序我又不会,希望各位大神指点下啊,应该用什么方法比较好,如果是调用外部程序的方法,要用什么控件吗?或者是关键部分的语句?这方面我一点经验都没有,完全是个小白呀不知道描述清楚了没有。

解决方案 »

  1.   

    用MDI窗体。。你那说的都是基础功能,,
      

  2.   

    每个窗体写自己的逻辑,主窗体上写调用各个窗体的逻辑关闭窗体的时候不要用Application.Exit
      

  3.   

    因为在子功能里,点下一步的时候,由于需求,我是将当前窗体隐藏的,如果不用Application.Exit,隐藏的窗体就不能关闭了。当然这个是可以做到的,不用退出应用程序,直接关闭隐藏的窗体也是可以的,这个我确实是要改一下。
      

  4.   


    正在看MDI,不知道能不能实现呀。
    起始窗体就像一个目录管理一样,点击不同的按钮可以打开不同的窗体。
      

  5.   

    用tab即可,每个里面的面板放置不同的功能界面,然后隐藏掉tab头即可,不同的按钮显示不同的tab页,这个是最简单的思路。
    或者你稍微复杂点就是做成form,mdi风格。或者你直接form放入某个容器里。
      

  6.   


    一开始也想过TabControl控件的,但是由于我原来软件结构的原因,就需要在原有基础上做些修改,而且我对TabControl也不了解。
    MDI试了下,发现子窗体不可以移出父窗体的范围,而且最小化也是在父窗体里,不是我想要的效果。
    现在采用的方法就是调用外部程序,这样可以实现我的需求,并且原有的程序也不需要做什么改动。