第一种方法:
创建一个类,里面声明用于存储接收的字段。传的时候存储于字段中,要用的时候,直接类名.字段名 进行调用。(这种方法传递是双向的)

第二种方法:
1.在Form1里定义

public string Name = “*****”

  1. 在Form2里创建Form1对象,

Form1 f = new Form1();

然后就可以通过f.Name取值了

第三种方法:用构造函数
在窗体Form2中

int value1;
string value2;

public Form2 ( int value1 , string value2 )
{
InitializeComponent ( );

 this.value1 = value1; this.value2 = value2;

}

在窗体Form1中这样调用

new Form2 ( 111 , “222” ).Show ( );

这样就把111,“222”,这2个值传送给了Form2 d
但是这样的传值是单向的

第四种方法:通过窗体的公有属性值(特点:实现简单)
举例“在窗体Form2中定义一个公有属性Form2Value,获取和设置textBox1的文本值

public string Form2Value
{
get
{
return this.textBox1.Text;
}
set
{
this.textBox1.Text = value;
}
}

在窗体Form1中这样调用

Form2 f2 = new Form2 ( );
f2.Form2Value = “Ok”; //给Form2的textBox1赋值Ok
f2.ShowDialog ( );

第五种方法:通过窗体的公有属性值和Owner属性(特点:实现简单,灵活)

在窗体Form1中

public int Form1Value = 1;

Form2 f2 = new Form2 ( );
f2.ShowDialog ( this ); //把Form1作为Form2的所有者传递给Form2

在窗体Form2中

//Form2的所有者是Form1
Form1 f1 = ( Form1 ) this.Owner;
//取到Form1的值是1
MessageBox.Show ( f1.Form1Value .ToString ( ) );
//给Form1的Form1Value赋值222
f1.Form1Value = 222;

第六种方法:通过窗体的公有属性值和Application.OpenForms属性(感觉用的比较少)
说明:Application.OpenForms属性:获取属于应用程序的打开窗体的集合。(此属性在 .NET Framework2.0版中)
实现代码如下:
在窗体Form1中

public int Form1Value = 1;

Form2 f2 = new Form2 ( );
f2.Show ( );

在窗体Form2中

string formName = “Form1”;
Form fr = Application.OpenForms [ formName ];

if ( fr != null )
{
Form1 f1 = ( Form1 ) fr;
//取到Form1的值是1
MessageBox.Show ( f1.Form1Value.ToString ( ) );
//给Form1的Form1Value赋值222
f1.Form1Value = 222;
}

第七种方法:通过事件
在窗体Form2中定义公有属性Form2Value,获取和设置textBox1的文本值
并且还定义一个accept事件

public string Form2Value
{
get
{
return this.textBox1.Text;
}
set
{
this.textBox1.Text = value;
}
}

public event EventHandler accept;

private void button1_Click ( object sender , EventArgs e )
{
if ( accept != null )
{
accept ( this , EventArgs.Empty ); //当窗体触发事件,传递自身引用
}
}

在窗体Form1中

Form2 f2 = new Form2 ( );
f2.accept += new EventHandler ( f2_accept );
f2.Show ( );

void f2_accept ( object sender , EventArgs e )
{
//事件的接收者通过一个简单的类型转换得到Form2的引用
Form2 f2 = (Form2) sender;
//接收到Form2的textBox1.Text
this.textBox1.Text = f2.Form2Value;
}

C# 窗体间传值方法大汇总(转)相关推荐

  1. Pyqt 窗体间传值

    窗体间传值网上有好多方法,比如新建文件,先将子类窗体的数据传到文件中,父窗体读取文件.  Signal&Slot机制进行传值 等等 在这里,我们就举个采用apply方法:Signal& ...

  2. VB全面控制Excel方法大汇总

    转自:http://blog.csdn.net/chenjl1031/article/details/8983631 VB全面控制Excel方法大汇总,共300个: 首先创建 Excel 对象,使用C ...

  3. 常用的密码破解方法大汇总 zz

    常用的密码破解方法大汇总 zz 2008-10-30 01:59 P.M. 在日常操作中,我们经常要输入各种各样的密码,例如开机时要输入密码,QQ时也要先输入密码,假如你忘记了这些密码,就有可能用不了 ...

  4. java 页面之间传值_JSP页面间传值方法

    JSP页面间传值方法[@more@] a:最常用的方法是用form中的text, ,然后在b.jsp页面中这样获取 String username=request.getParameter(" ...

  5. 计算机一级电子表格地区排名,玩转Excel电子表格排序方法大汇总

    玩转Excel电子表格排序方法大汇总 分类:计算机等级 | 更新时间:2016-07-08| 来源:转载 排序是数据处理中的经常性工作,Excel排序有序数计算(类似成绩统计中的名次)和数据重排两类. ...

  6. 构造函数实现窗体间传值

    ///Form1.cs the form contains a textbox and a button using System; using System.Collections.Generic; ...

  7. ASP.NET十分有用的页面间传值方法(转)

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交    <form action= "target.aspx" method = "post&qu ...

  8. 利用事件进行窗体间传值

    为什么80%的码农都做不了架构师?>>>    举例,现在有两个窗体,SelectForm窗体查询信息集合,使用DataGridview显示信息集合,EditForm窗体添加和修改信 ...

  9. 数学速算法_小学数学必考应用题解题思路及方法大汇总(附各年级练习题及答案)...

    长按二维码关注 小学数学学习不一定要死盯着书本,学习不是照着书背记就能学好,学习是要灵活的运用.运用的越多,掌握的就越牢靠! 应用题,可以说是小学数学中的半壁江山.做不好应用题的孩子,不止是数学成绩很 ...

  10. 换脸方法大汇总:生成对抗网络GAN、扩散模型等

    1.One-Shot Face Video Re-enactment using Hybrid Latent Spaces of StyleGAN2 StyleGAN的高保真人像生成,已逐渐克服了单样 ...

最新文章

  1. windows mongodb 安装
  2. java bmp_JAVA实现对BMP图片的读取
  3. bzoj3993: [SDOI2015]星际战争(二分+最大流)
  4. 声明式事务控制的实现
  5. 将.net framework 4 部署在docker中的全过程(支持4.0 到 4.8,3.5应该也可以)
  6. inrange函数_掌握这些数学函数,你会在算法效率的分析时经常用到
  7. js 多个input值拼接json字符串
  8. linux下休眠/待机命令
  9. 霆智服务器安装步骤_阿里云服务器安装MySql数据库详细步骤
  10. android从子页面跳转回主页面注意
  11. ArcGIS拓扑关系建立概述
  12. python如何调整图片大小_Python实现图片尺寸缩放脚本
  13. UVA 10099 - The Tourist Guide
  14. 民谣吉他之新手调音,弦音不对的问题
  15. 第三章(第一部分) 月夜猫の魅 友谊的决裂
  16. 微信小程序获取当前页面url
  17. C#基于虹软SDK的人脸识别签到系统
  18. zookeeper关闭默认管理端口admin.serverPort=8080
  19. 用Java语言定义一个整数定义的数组,求奇数个数和偶数个数。
  20. WPS插件开发流程(2)

热门文章

  1. 设计模式的学习(9)外观模式
  2. 隐藏iframe实现无刷新的效果
  3. extjs修改页面的内容关键问题
  4. base定义了所有链接的URL
  5. 9.GitLab 汉化
  6. 9.卷1(套接字联网API)---基本SCTP套接字编程
  7. 19.UNIX 环境高级编程--伪终端
  8. 11.文件与文件系统的压缩与打包
  9. 21. PHP 表单验证 - 完成表单实例
  10. java如果目录不存在则创建目录_java – 创建一个目录,如果它不存在,然后再创建该目录中的文件...