c#窗体的传值方法
了解了窗体的显示相关知识,接着总结一下窗体的传值方法:
.通过构造函数
特点:传值是单向的(不可以互相传值),实现简单 实现代码如下: 在窗体Form2中
int value1; string value2;
public Form2 ( int value1 , string value2 ) {
InitializeComponent ( ); this.value1 = value1; this.value2 = value2; }
在窗体Form1中这样调用
, " ).Show ( ); //这样就把111,"222",这2个值传送给了Form2
.通过静态变量
特点:传值是双向的,实现简单 实现代码如下:
在一个app类中定义一个静态成员value public class app {
public static string value; }
在窗体Form1中这样调用
app.value = "f2"; //给静态成员赋值 new Form2 ( ).Show ( ); //显示Form2 在窗体Form2中
this.Text = app.value; //取回app.value的值
app.value = "Form2"; //给app.value赋值,以便其他窗体调用
.通过窗体的公有属性值 特点:实现简单 实现代码如下:
在窗体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中
; 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中
;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#窗体的传值方法的更多相关文章
- C# 窗体间传值方法大汇总
第一种方法:创建一个类,里面声明用于存储接收的字段.传的时候存储于字段中,要用的时候,直接类名.字段名 进行调用.(这种方法传递是双向的) 第二种方法:1.在Form1里定义 public strin ...
- C# 窗体间传值方法大汇总(转)
第一种方法:创建一个类,里面声明用于存储接收的字段.传的时候存储于字段中,要用的时候,直接类名.字段名 进行调用.(这种方法传递是双向的) 第二种方法:1.在Form1里定义 public strin ...
- 【转】WinForm窗体显示和窗体间传值
以前对WinForm窗体显示和窗体间传值了解不是很清楚 最近做了一些WinForm项目,把用到的相关知识整理如下 A.WinForm中窗体显示 显示窗体可以有以下2种方法: Form.ShowDial ...
- C# ShowDialog时窗体贱传值得方法
用C#开发应用的时候,通常需要多个窗体!有时候为了打开窗体的时候禁止操作父窗体,我们一般采用模态对话框的方法,也算就是用ShowDialog()方法. 假设有两个窗体A和B,A作为主窗体使用ShowD ...
- C#窗体间传值的简便方法/工具
一.问题:窗体间传值必须需要窗体之间有联系,具体有如下方式 窗体间传值涉及到窗体A必须拥有窗体B,这样才可以实现A-B之间传值 窗体A与窗体B在窗体/实例C中,A-B可互相通讯 其他方式,不细讨论,复 ...
- Pyqt 窗体间传值
窗体间传值网上有好多方法,比如新建文件,先将子类窗体的数据传到文件中,父窗体读取文件. Signal&Slot机制进行传值 等等 在这里,我们就举个采用apply方法:Signal& ...
- windows form (窗体) 之间传值小结
windows form (窗体) 之间传值小结 windows form (窗体) 之间传值小结 在windows form之间传值,我总结了有四个方法:全局变量.属性.窗体构造函数和deleg ...
- ASP.NET页面之间的几种传值方法
首先是QueryString方法传值: QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法 ...
- C#窗体向另一个窗体实时传值及传值问题
C#窗体向另一个窗体实时传值 另外的传值方法:
随机推荐
- iOS之断点下载,使用NSURLSession简单封装
最近公司需要做个文件管理的功能模块,刚交到博主手上时,头都大了.因为没做过这方面的东西,只好咬牙加班,并请教某位大神,指点了一下,清楚研究方向,找了网上大量资料,最后实现简单的封装. 上代码:.h文件 ...
- mysql查询分组归类函数-group_concat,通常与group_by一起使用
select a.`name`,group_concat(b.name SEPARATOR'.') as persons from `group` as a,`person` as b,`person ...
- DTO学习系列之AutoMapper(二)
本篇目录: Flattening-复杂到简单 Projection-简单到复杂 Configuration Validation-配置验证 Lists and Array-集合和数组 Nested m ...
- GacLib使用方法(一)
GacLib使用方法 这是vczh大神的GacLib库新手入门,为自己做点笔记,详细的信息可以参考网页.下面简单说说怎么在自己的程序中使用GacLib库,本文只是前述网址中新手教程的一点体验,使用的环 ...
- Angularjs 日期格式转换
我自己的随笔,记录我编码的点滴. <!DOCTYPE HTML><html><head> <meta charset="utf-8" ...
- 影响MySQL性能的五大配置参数
我们今天主要和大家分享的是对MySQL性能影响关系紧密的五大配置参数,以下就是文章的具体内容描述,希望会给你带来一些帮助在此方面. 以下的文章主要是对MySQL性能影响关系紧密的五大配置参数的介绍,我 ...
- poj 1037 A decorative fence
题目链接:http://poj.org/problem?id=1037 Description Richard just finished building his new house. Now th ...
- Tornado web 框架
Tornado web 框架 其实很简单.深度应用 一.简介 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像we ...
- 【hihocoder#1388】Periodic Signal NTT
题目链接:http://hihocoder.com/problemset/problem/1388?sid=974337 题目大意:找出一个$k$,使得$\sum_{i=0}^{n-1}(A_{i}- ...
- Android-2
传递简单数据 //发送方i.putExtra("data",t.getText().toString()); //接收方Intent i = getIntent();m = (Ed ...