解决方案
5
1 form3创建一个有参构造函数。
2 通过静态类,保存字段,form3根据静态类的字段来辨别
2 通过静态类,保存字段,form3根据静态类的字段来辨别
5
Form1、Form2可以订阅Form3的FormClosed事件,Form3关闭就this.Show()
5
根据传递过去选择返回哪个窗口
public Form3(int i)//带参数的构造函数
InitializeComponent();//窗体加载调用
这样写的话你new一个Form3就需要给一个参数
5
窗体用单例:
Form1{
public static readonly Form1 instance=new Form1();
//看你要怎么跳转,点击按钮跳转的话就在按钮事件写下面的代码
{
FlowControl.instance.SetFlow(this,Form3.instance);//这是不跳转的,另外你可以本人写一个带跳转的setflow
}
}Form2{
public static readonly Form2 instance=new Form2();
//看你要怎么跳转,点击按钮跳转的话就在按钮事件写下面的代码
{
FlowControl.instance.SetFlow(this,Form3.instance);//这是不跳转的,另外你可以本人写一个带跳转的setflow
}
}Form3{
public static readonly Form3 instance=new Form3();
//看你要怎么跳转,点击按钮跳转的话就在按钮事件写下面的代码
{
FlowControl.instance.SetFlow(this,Form3.instance);//这是不跳转的,另外你可以本人写一个带跳转的setflow
}
//返回时间
{
FlowControl.instance.BackLast Flow();
}
}
一个流程控制
FlowControl
{
public static readonly FlowControl instance=new FlowControl();
private Form lastFlow;private Form nowFlow;
public void SetFlow(Form lastFrm,Form nowFrm){ lastFlow=frm;nowFlow=nowFrm;//看情况写不写跳转}
public void BackLast Flow()
{
if(…)//非空判断nowflow lastflow
return;
Form1{
public static readonly Form1 instance=new Form1();
//看你要怎么跳转,点击按钮跳转的话就在按钮事件写下面的代码
{
FlowControl.instance.SetFlow(this,Form3.instance);//这是不跳转的,另外你可以本人写一个带跳转的setflow
}
}Form2{
public static readonly Form2 instance=new Form2();
//看你要怎么跳转,点击按钮跳转的话就在按钮事件写下面的代码
{
FlowControl.instance.SetFlow(this,Form3.instance);//这是不跳转的,另外你可以本人写一个带跳转的setflow
}
}Form3{
public static readonly Form3 instance=new Form3();
//看你要怎么跳转,点击按钮跳转的话就在按钮事件写下面的代码
{
FlowControl.instance.SetFlow(this,Form3.instance);//这是不跳转的,另外你可以本人写一个带跳转的setflow
}
//返回时间
{
FlowControl.instance.BackLast Flow();
}
}
一个流程控制
FlowControl
{
public static readonly FlowControl instance=new FlowControl();
private Form lastFlow;private Form nowFlow;
public void SetFlow(Form lastFrm,Form nowFrm){ lastFlow=frm;nowFlow=nowFrm;//看情况写不写跳转}
public void BackLast Flow()
{
if(…)//非空判断nowflow lastflow
return;
nowFlow.hide();
lastFlow.Show();
nowFlow=lastFlow;
lastFlow=null;
}
//……更多的跳转操作方法
}
多步返回的话改改,吧flow的两个改为list,或其他的,可以本人改一个合适的
5
在form3里面声明个变量,保存下标记从哪个form来的标识