C#窗体间传值的几种方法总结

2025-05-16 05:55:51
推荐回答(1个)
回答1:

先分三种情况来讲吧:(一)从第一个窗体的值传到第二个窗体:(1) 最简单的方法就是利用静态函数,在第一个窗体附值,在第二个窗体直接引用就行了.如:public static class A(){ String Name =null;}然后在第一个窗体附值,A.Name=’张三’;在第二个窗体就可以直接引用,可以显示在label中,label.Text=A.Name;(2) 利用窗体的构造函数,修改第二个窗体的构造函数,假如第二个窗体为form2,则构造函数为:public form2(string Name){ InitializeComponent(); Label1.Text=Name;}第一个窗体调用第二个窗体时,把第一个窗体的TextBox1的值传到第二个窗休的Label中,代码如下:form2 f=new form2(TextBox1.Text)f.show();这样就行了,简单吧.(3) 还有一种办法是最最简单,但是也是最不常用的一种,就是设置控件的modifiers属性为public,在调用时直接附值,如还是把第一个窗体的textbox值传到第二个窗体的label,代码为:Form2 f=new form2();f.Label1.text=TextBox1.Text;这就ok了,是简单吧.(二)把第二个窗体的值传到第一个窗体,常见的情况就是单击第二个窗体的确定按钮时,把第二窗体的值传到第一个窗体方法:把第二个窗体设为对话框的形式,在第二个窗体里写一个公共字段的属性,如:publicstring TxtCont1 { get { return TxtCont; } set { TxtCont = value; } }在单击确定按钮时,给该字段附值, this.TxtCont1 = textBox1.Text;然后设为对话框,关闭该窗体, DialogResult = DialogResult.OK;在第一个窗体中代码如下, Form2 f2 = newForm2(); if (f2.ShowDialog()==DialogResult.OK) { textBox1.Text = f2.TxtCont1; }O了,这样就完成了.(三)还有一种常见的就是子窗体和父窗体之间的传值了.这种情况就和前面两种大的情况差不多了,但或许会有人问怎么像第一种情况的(3)那样获得父窗体的控件属性呢,方法也很简单Form1myform = (Form1)this.MdiParent;myform.Label1.text=’dfdsfds’;这样就行了.注:以上代码只是手写,并非所有都上机测试,只是给大家一个思路而已,希望能对需要的人提供一点帮助.