×

c# Form 参数 窗体 传递

C# Win Form 窗体间传递参数的几种方法总结

匿名 匿名 发表于2020-03-30 14:28:24 浏览67 评论0

抢沙发发表评论

C# Win Form编程中,如果出现多个窗体可能需要多个窗体之间传递参数值,如通过登录页页面跳转到操作页面是需要将用户名作为参数传递给新打开窗口。网上所提供方法较多,针对初学者,本文选择其中几类较为简单的方法进行说明,希望对初学者有所帮助。首先给出需要传递值的两个窗口,父窗口A与子窗口B,如下:

C# Win Form 窗体间传递参数的几种方法总结

父窗口A(发送值到B窗口)

C# Win Form 窗体间传递参数的几种方法总结

子窗口B(接收父窗口发送的值)


本例题需要将A窗口中的值传递给A窗口打开的B窗口,并在B窗口中显示传递过来的值。主要实现方法描述如下:

1、构造函数方法

构造函数方法主要是指针对子窗口B修改其构造函数,默认情况自动生成的子窗口构造函数是不带参数的,可以将其修改为带参数形式,参数为接收的字符串类型。

C# Win Form 窗体间传递参数的几种方法总结

改写构造函数用于接收参数

改写后之后则可以在父窗口中对子窗口进行实例化时,传递参数值,实现在不同页面间进行参数的传递。其父窗口代码如下:

C# Win Form 窗体间传递参数的几种方法总结

父窗口通过子窗口实例化传递值

2、静态关键字实现传递值

在C#中静态关键字static定义的变量,可以被各个窗体对象所访问,因此可以实现在不同窗体之间进行值的传递。

C# Win Form 窗体间传递参数的几种方法总结

定义静态成员变量

C# Win Form 窗体间传递参数的几种方法总结

成员变量赋值

在完成赋值之后,子窗口可通过该静态成员变量读取变量值实现参数传递效果,读取实现代码如下:

C# Win Form 窗体间传递参数的几种方法总结

子窗口 load事件读取父窗口静态成员变量值

3、Public属性值传递

Public属性值传递主要是在子窗口中定义对应的public 属性用于接收传递过来的值,实现值传递。

C# Win Form 窗体间传递参数的几种方法总结

子窗口公共属性

父窗口在实例化子窗口时可对该属性进行赋值,通过赋值完成参数值的传递。

C# Win Form 窗体间传递参数的几种方法总结

子窗口public属性param接收参数

4、直接传递窗体实现参数传递

直接传递窗体是指将父窗体标识作为变量直接传递给子窗体,子窗体通过父窗体标识实现数据的读取。首先还是在子窗体中定义public的父窗体类型变量,然后实现传递:

C# Win Form 窗体间传递参数的几种方法总结

修改父窗体要读取控件为public属性

C# Win Form 窗体间传递参数的几种方法总结

子窗体变量

父窗体在实例化该子窗体时直接将本身的标识this传递给子窗体,然后子窗体通过pfm读取父窗体控件中的值。

C# Win Form 窗体间传递参数的几种方法总结

父窗体直接传子窗体

子窗体中通过pfm读取父窗体中的控件值,如下:

C# Win Form 窗体间传递参数的几种方法总结

读取传递值

以上给出部分常用较为简单的窗体间数据传递的方法,除此之外委托、事件等方法也可实现参数传递,但对初学者而言相对复杂,不再介绍。最终测试实现效果如下图:

C# Win Form 窗体间传递参数的几种方法总结


群贤毕至

访客