网站首页 > 技术文章 正文
C# Win Form编程中,如果出现多个窗体可能需要多个窗体之间传递参数值,如通过登录页页面跳转到操作页面是需要将用户名作为参数传递给新打开窗口。网上所提供方法较多,针对初学者,本文选择其中几类较为简单的方法进行说明,希望对初学者有所帮助。首先给出需要传递值的两个窗口,父窗口A与子窗口B,如下:
本例题需要将A窗口中的值传递给A窗口打开的B窗口,并在B窗口中显示传递过来的值。主要实现方法描述如下:
1、构造函数方法
构造函数方法主要是指针对子窗口B修改其构造函数,默认情况自动生成的子窗口构造函数是不带参数的,可以将其修改为带参数形式,参数为接收的字符串类型。
改写后之后则可以在父窗口中对子窗口进行实例化时,传递参数值,实现在不同页面间进行参数的传递。其父窗口代码如下:
2、静态关键字实现传递值
在C#中静态关键字static定义的变量,可以被各个窗体对象所访问,因此可以实现在不同窗体之间进行值的传递。
在完成赋值之后,子窗口可通过该静态成员变量读取变量值实现参数传递效果,读取实现代码如下:
3、Public属性值传递
Public属性值传递主要是在子窗口中定义对应的public 属性用于接收传递过来的值,实现值传递。
父窗口在实例化子窗口时可对该属性进行赋值,通过赋值完成参数值的传递。
4、直接传递窗体实现参数传递
直接传递窗体是指将父窗体标识作为变量直接传递给子窗体,子窗体通过父窗体标识实现数据的读取。首先还是在子窗体中定义public的父窗体类型变量,然后实现传递:
父窗体在实例化该子窗体时直接将本身的标识this传递给子窗体,然后子窗体通过pfm读取父窗体控件中的值。
子窗体中通过pfm读取父窗体中的控件值,如下:
以上给出部分常用较为简单的窗体间数据传递的方法,除此之外委托、事件等方法也可实现参数传递,但对初学者而言相对复杂,不再介绍。最终测试实现效果如下图:
本头条号长期关注于青少年编程资讯分享;编程课程、素材、代码分享及青少年编程培训。如果您对以上方面有兴趣,可关注该头条号,如有编程学习问题可以联系作者,共同探讨。
往期内容分享如下:
猜你喜欢
- 2024-10-04 C# 类和对象(c#简述类和对象的关系)
- 2024-10-04 面试官常问:关于Redis的分布式锁设计,你是如何实现的?
- 2024-10-04 互联网面试——C# 面试题(c#面试题2020)
- 2024-10-04 如何使用 C# 构建自己的 task scheduler
- 2024-10-04 C#-实例与静态成员,访问修饰符,命名空间,启动项目 080
- 2024-10-04 C#在类型的外部不能声明全局变量,与C,C++对比,示例说明
- 10-02基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- 10-02Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- 10-02AWD-LSTM语言模型是如何实现的_lstm语言模型
- 10-02NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 10-02使用ONNX和Torchscript加快推理速度的测试
- 10-02tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- 10-02Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- 10-02Gateway_gateways
- 最近发表
-
- 基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- AWD-LSTM语言模型是如何实现的_lstm语言模型
- NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 使用ONNX和Torchscript加快推理速度的测试
- tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- Gateway_gateways
- Coze开源本地部署教程_开源canopen
- 扣子开源本地部署教程 丨Coze智能体小白喂饭级指南
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)