C# Form程序,有多个Form窗体,按照一定的顺序依次执行当前form,关闭当前form,执行下一个form。。。。

一个业务流程包括多个操作模块,每一步的操作模块对应的i自己的一个form窗体。现在已经将每个模块的form和下一个要执行的form的名称存进了数据库。如何实现在执行业务流... 一个业务流程包括多个操作模块,每一步的操作模块对应的i自己的一个form窗体。现在已经将每个模块的form和下一个要执行的form的名称存进了数据库。如何实现在执行业务流程时,读取数据中的数据,获取当前的form名称,然后打开对应的form,当当前的form关闭后(或者说任务提交),才打开下一个要执行的form。
数据库中已经存好了每一个form的下一个要执行form(有多种可能性)。现在问题的关键是如何控制form之间的跳转,我原本的思路是加一个监视器判断当前Form是否执行完(假设点击提交或关闭按钮),如果执行完了,则关闭当前orm,打开下一个要执行的form。谢谢啊
展开
 我来答
skyuni_ding
2013-05-09 · 超过24用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:70.5万
展开全部
主窗体打开时读取数据库,然后运用反射new出每个窗体,然后全部添加到一个集合里,依次把集合里面的窗体添加FormClosed事件,事件方法实现Show出集合里面下一个窗体(如果有),然后Show出第一个窗体,OK了
追问
反射这些窗体的功能已经实现,问题是如何控制每个form的打开和关闭,比如我在for循环中依次打开form,关闭form,问题是有可能存在跳转的可能性,如第一个form执行完后有可能根据录入的某个变量值直接执行第三个form。
追答
public class QueueForm : Form
   {
       public List<QueueForm> FormQueue { get; set; }
       public int IndexOfFormQueue
       {
           get
           {
               if (FormQueue == null || FormQueue.Count == 0)
               {
                   return -1;
               }
               for (int i = 0; i < FormQueue.Count; i++)
               {
                   if (FormQueue[i] == this)
                   {
                       return i;
                   }
               }
               return -1;
           }
       }
       public void ShowQueueForm(int index)
       {
           if (FormQueue!=null&&index >= 0 && index < FormQueue.Count)
           {
               FormQueue[index].Show();
           }
       }
       public void ShowNextForm()
       {
           ShowQueueForm(IndexOfFormQueue + 1);
       }
   }

窗体全部更改继承这个类

集合生成后赋值每个窗体成员的FormQueue 属性

然后自己在各个窗体FormClosed里随便搞

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式