C# 窗体间传值方法大汇总

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

public string Name = "*****"

 
2. 在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; 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 不好意思,你的问题似乎不太明确。"c"可能是一个字母,一个单词,或者是其他的某种意思。如果你能够提供更多的背景信息或者明确你想要了解的内容,我将会尽力给你一个更准确的回答。 ### 回答2: 好的,我会用中文来回答您的问题。 C是计算机科学中的一门编程语言,它最初由美国贝尔实验室的丹尼斯·里奇(Dennis Ritchie)在1972年设计和开发。C语言是一种通用的高级编程语言,被广泛用于系统软件、嵌入式系统和应用程序开发等领域。 C语言具有简洁、高效和灵活的特点,它提供了丰富的编程工具和许多底层的操作功能,使得开发者可以更加精确地控制计算机的硬件和软件资源。C语言的语法规则相对简单,易于学习和理解,这也是它成为许多计算机科学教育领域中的第一门编程语言的原因之一。 C语言的应用范围广泛,包括操作系统、编译器、数据库系统、游戏开发和网络应用等。许多著名的软件和系统都是使用C语言开发的,比如UNIX操作系统、Linux操作系统、MySQL数据库等。 另外,C语言还衍生出了许多其他流行的编程语言,比如C++、C#和Objective-C等。这些语言基于C语言,并在其基础上添加了许多新功能和特性,以满足不同领域的需求。 总的来说,C语言在计算机科学中起着重要的作用,它是一门强大而广泛使用的编程语言,为开发者提供了丰富的工具和底层操作能力,使得他们可以更好地控制计算机资源并实现复杂的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值