C# Winform中跨页面参数传递方法详解
3星 · 超过75%的资源 需积分: 49 128 浏览量
更新于2024-09-13
收藏 5KB TXT 举报
在C# Winform应用程序中,由于缺乏全局变量的功能,我们需要采用其他方法来实现在不同窗体(Form)之间的参数传递。本文主要介绍了如何通过静态成员变量、属性以及事件驱动的方式来实现这一功能。
1. **静态成员变量**:
C#中,虽然不能像VB.Net那样直接使用全局变量,但可以通过创建静态变量来达到类似的效果。例如,作者在Form1中定义了一个静态字符串变量`myTestStr1`,并在构造函数中初始化,这样所有实例化Form1的对象都可以访问这个变量。静态变量存储在类的内存空间中,而非每个对象实例独立,确保数据一致性。
2. **属性**:
Form1中添加了`GetStrValue`属性,用于读取和设置`myTestStr1`的值。构造函数内的赋值操作是在创建对象时完成的,而属性则提供了更灵活的接口,可以在任何地方读取或修改这个值。
3. **事件处理**:
在Form1中,创建了一个名为`but_Test`的按钮,点击时会创建一个新的Form2实例并显示。在Form2中,有一个`but_Yes`按钮,点击时会调用Form1的`GetStrValue`属性设置值,并在消息框中显示。这种方式利用了事件处理机制,通过传递参数实现了两个窗体间的通信。
4. **IDE兼容性**:
提及到VS2005与VS2003的兼容性问题,可能指的是早期版本的IDE对某些公共成员的访问限制。在C#中,为了让代码能在不同版本中工作,通常需要确保访问修饰符(如将`private`改为`public`)以便在子类和不同窗体之间正确共享。
5. **实例化临时父窗体**:
文档中还提到在初始化父窗体(frmFather)时,使用了静态变量`frmFatherTemp`作为临时实例,这可能是为了在多个窗体间传递数据或者共享状态。不过这部分内容与传递参数的具体方法不是直接相关。
总结起来,这篇文章介绍了在C# Winform中,通过静态变量、属性以及事件处理来实现不同窗体间的数据交换,这是在C#中没有全局变量情况下的一种常见解决方案。通过这种方法,开发者可以灵活地控制数据流,保持代码的结构清晰和可维护性。
2021-06-09 上传
112 浏览量
2013-03-01 上传
2015-07-24 上传
304 浏览量
2010-08-24 上传
2012-05-15 上传
guwu789
- 粉丝: 0
- 资源: 4
最新资源
- cs1660HW2
- 串口调试助手和驱动程序.zip
- glass_portfolio
- dotnet C# 获取一个可用的端口的方法.rar
- pyg_lib-0.2.0+pt20cpu-cp39-cp39-linux_x86_64whl.zip
- Net4.5.2.zip
- robotjs.rar
- node_mongo_postman
- p5.js:用于学习p5.js的示例代码和相关材料
- 工作站:Chef自动化配置我的个人Linux工作站
- coding_test:python编码测试
- ASPNET全能化手机销售售后管理系统源码
- alldigitalradio:以nmigen编写的,针对FPGA的所有数字无线电平台(目前)
- dotnet C# 基础二进制处理 二进制数组与结构体的互转.rar
- DCRefresher:UIScrollview上拉下拉刷新器(UIScrollview Header and Footer refresher) for UITableView
- XBAP中的WCF入门指南