C# Form程序,有多个Form窗体,按照一定的顺序依次执行当前form,关闭当前form,执行下一个form。。。。
一个业务流程包括多个操作模块,每一步的操作模块对应的i自己的一个form窗体。现在已经将每个模块的form和下一个要执行的form的名称存进了数据库。如何实现在执行业务流...
一个业务流程包括多个操作模块,每一步的操作模块对应的i自己的一个form窗体。现在已经将每个模块的form和下一个要执行的form的名称存进了数据库。如何实现在执行业务流程时,读取数据中的数据,获取当前的form名称,然后打开对应的form,当当前的form关闭后(或者说任务提交),才打开下一个要执行的form。
数据库中已经存好了每一个form的下一个要执行form(有多种可能性)。现在问题的关键是如何控制form之间的跳转,我原本的思路是加一个监视器判断当前Form是否执行完(假设点击提交或关闭按钮),如果执行完了,则关闭当前orm,打开下一个要执行的form。谢谢啊 展开
数据库中已经存好了每一个form的下一个要执行form(有多种可能性)。现在问题的关键是如何控制form之间的跳转,我原本的思路是加一个监视器判断当前Form是否执行完(假设点击提交或关闭按钮),如果执行完了,则关闭当前orm,打开下一个要执行的form。谢谢啊 展开
1个回答
展开全部
主窗体打开时读取数据库,然后运用反射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里随便搞
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询