c#form跳转问题

.Net技术 码拜 9年前 (2016-02-29) 1676次浏览
有两个form都可以跳转到form3,本人在form3中应该怎么判断是由哪个form跳转来的?然后实现buttom返回到上一个FORMc#form跳转问题
解决方案

5

1  form3创建一个有参构造函数。
2  通过静态类,保存字段,form3根据静态类的字段来辨别

5

Form1、Form2可以订阅Form3的FormClosed事件,Form3关闭就this.Show()

5

根据传递过去选择返回哪个窗口

引用 2 楼 lubaqunyi40 的回复:
Quote: 引用 1 楼 u013130428 的回复:

Form2跟Form1代码
Form3 frm3 = new Form3(2)
frm3.show();
Form3代码
public Form3(int i)
{
InitializeComponent();
}

form3的代码没看懂

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;

nowFlow.hide();
lastFlow.Show();
nowFlow=lastFlow;
lastFlow=null;
}
//……更多的跳转操作方法
}
多步返回的话改改,吧flow的两个改为list,或其他的,可以本人改一个合适的

5

在form3里面声明个变量,保存下标记从哪个form来的标识

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c#form跳转问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)