C#中Form窗体之间怎么传值?

如题所述

如果是全局使用的可以单独声明静态变量。
如果是局部使用的话:
传入,通过构造函数;
传出,通过窗体事件。
举个例子,Form1在某方法中新建Form2实例、向其传入参数,并等待其关闭后得到传出的数据。
1.Form2应定义一个带有参数的构造函数,如public Form2(int InputParam){...}
2.在新建Form2实例时,通过构造函数传入数值,如 Form2 SubForm = new Form2(1);
3.在显示新实例SubForm之前,注册其窗体关闭事件,如SubForm.FormClosing += new FormClosingEventHandler(Form2_FormClosing);(在Form1中应定义这个Form2_FormClosing处理函数)
4.在Form2_FormClosing处理函数中获取SubForm(作为事件的sender)并从中取得数据。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-29
1、使用全局变量(不推荐,公共变量一直都不是微软推荐使用的)
2、构造函数的重载(凑合,但是也不推荐,会影响设计阶段的窗体加载)
public FormMain(参数)
{}
3、窗体的ShowDialog重载(推荐这种方法)
public DialogResult ShowDialog(参数)
{
表达式;
this.ShowDialog(Parent);
return this.DialogResult;
}
第2个回答  推荐于2018-12-31
通过窗体的构造方法传值
列:
要将Form1中的一个字符串传进Form2中只需要这样写

//Form2中的构造方法
public Form2(string str)
{

}

//Form1中实例化Form2
Form2 f = new Form2(str);本回答被网友采纳
第3个回答  2012-02-29
传值??????
创建一个Static 的类,里面申请几个变量。
int的,string的,float的。
当然,这些变量你可以作为static 的,这样,不久简单了。
在form1中给 变量1赋值,然后在form2中 用static的类名调用其中的变量1取值。
over

c# form间数据传输
方法一、就是用构造函数传值,先在Form3中定义一个成员变量,然后重载Form3的构造函数,添加一个有参数的构造函数(直接复制现有的构造函数,然后添加一个参数,在里面写上this.成员变量名=参数名即可),写完这些以后在form2里面new Form3的时候选择有参数的构造函数完成,然后Show就可以了,这个时候你...

c# 两个from间传值的问题
在两个Form窗体之间传值,首先需要将第二个窗体中的变量、属性、方法声明为public。然后在第一个窗体中创建第二个窗体的实例,并通过该实例访问public成员。private string employeeId;public string EmployeeId { get { return employeeId; } set { employeeId = value; } } private MangaJobListView_...

C#中两个form窗体之间如何访问相互属性控件,如下:
方法一、利用属性传值 BackGround:①点击 Button按钮,将主窗体Form1中textBox1 中的值传到 Form2中的textBox2中。② 点击Form2中的按钮,将Form2中textBox的值传给主窗体的文本框。1、在Form2中定义一个字段,封装成属性:private string flag;\/\/\/ <summary> \/\/\/ 接收传过来的值 \/\/\/ <\/su...

在C#中怎样在两个Form之间传递数据(Winfrom)?
第一个是双向传值,也就是说,form1和form2改变i的值,另一方也会受到影响。第二个方法可以单向也可以双向传值。第三个方法是form1->form2单向传值。第四个方法是form2->form1单向传值。第一个全局变量:这个最简单,只要把变量描述成static就可以了,在form2中直接引用form1的变量,代码如下:在form1中定义一个...

c#中如何实现弹出窗口并传递参数?
在C#中实现弹出窗口并传值涉及到窗体之间的传值,通常有以下的几种方式\\x0d\\x0a1:在一个窗体中添加另一个窗体的引用,通过该引用方法另一个窗体的控件值。\\x0d\\x0a比如在MainForm中引入singleFrm1 \\x0d\\x0aForm1 singleFrm1 = null;\\x0d\\x0apublic MainForm(Form1 singleFrm1)\\x0d...

在C#中,如何实现在两个窗体中相互传值
在类中传递值的方法有几种:方法1.公共变量 class Form1 { public int Omq504868;...} 调用:Form1 form1 = new Form1(); \/\/实例类 form1.Omq504868 = 10;方法2.公共属性 class Form1 { public int Omq504868;{ get;set;} 调用:同上 } 方法3:参数传递 class Form1 { public Form...

谁可以给我个页面间传值的例子 C#的 谢谢!
常用的方法:1.静态变量,在窗体里Class Form1中,写入一个静态变量A,可以给其赋值,那么在这个项目中,就可以通过Form1.A来调用。不推荐此种方法,不太安全。2.比较稳妥的方法,就是在传值的过程中,首先在被传值窗体form2中,建立一个公有属性B,做为接收者。在form1里实例form2时,把需要...

C#中窗体之间的对象传递问题
form3zhi;\/\/为了显示值已经传过来了 6、这个运行是没错误了,但在Form3还不能看到传过来的值。下面来给Form2中的form2zhi赋值就可以了。双击Form2窗体在Form2_Load中写入以下代码即可实现:form2zhi = "将我传过去!";好了到目前为止不同窗体间的传值已经实现了。以上方法对所有窗体都可用,不管...

c# 项目A中的Form1窗体调用项目B中的Form1窗体后,如何实现项目B中的...
项目之间传值,可以使用通信手段,但是比较复杂。建议使用一种简单的方式,将需要传递的东西记录在一个公共可访问的xml文件中,A,B项目都读取这个文件即可。

c#winform中怎样在一个窗口定义一个数组后在其他窗口中给它赋值
类名(这里面写接收的值或者对象:int aa){ InitializeComponent();_aa=aa;} 传值窗体格式:窗体名Form2 Form1 fm=new Form1(可以选择有参还是无参,通过上下按钮选择,然后 那边类型是int,我们就传int过去,比如:5);fm.show();这样Form1就能接收值了。当然不仅仅是传值,传各种都 可以的 ...

相似回答