WinForm窗口之间传递值

// 1 全局变量
// 这个最简单,只要把变量描述成static就可以了,在form2中直接引用form1的变量,代码如下:
// 在form1中定义一个static变量public static int i= 9 ;
// Form2中的钮扣按钮如下:
private   void  button1_Click( object  sender, System.EventArgs e)
{textBox1.Text 
=  Form1.i.ToString();}

// 2 父窗口传值给子窗口(Form1为主窗体,Form2为子窗体)
// 代码如下:

// Form1中的代码:
public   partial   class  Form1 : Form
{
public  Form1()
{
InitializeComponent();
}


private   void  btnShow_Click( object  sender, EventArgs e)
{
Form2 form2 
=   new  Form2();
// 父窗体传值给子窗体
Form1 form1  =   new  Form1();
form2.String1 
=   " 成功传值给Form2窗体! " ;
form2.SetValue();
form2.ShowDialog();
}
// Form2中的代码:

private   string  String;

public   string  String1
{
get  {  return  String; }
set  { String  =  value; }
}
public   void  SetValue()
{
this .lblText.Text  =  String1;
}


// 3 子窗口传值给父窗口(Form1为主窗体,Form2为子窗体)

// Form1中的代码:
private   string  strValue;

public   string  StrValue
{
get  {  return  strValue; }
set  { strValue  =  value; }
}
private   void  btnShow_Click( object  sender, EventArgs e)
{
Form2 form2 
=   new  Form2();

// 子窗体返回值给父窗体
form2.Owner  =   this ;; // 重要的一步,主要是使Form2的Owner指针指向Form1

form2.ShowDialog();
MessageBox.Show(StrValue);
// 显示返回的值

}
// Form2中的代码:
private   void  btnclose_Click( object  sender, EventArgs e)
{
Form1 form1 
=  (Form1) this .Owner; // 把Form2的父窗口指针赋给lForm1
form1.StrValue  =   " 子窗体成功返回值给父窗体! " ; // 使用父窗口指针赋值

this .Close();
}

 

// 第四:
// 其实也是和第三中方法一样的哦

winform1{};
winform2{
public  winform1 OWF  = null ; }

你可能感兴趣的:(WinForm)