WinForm窗体之间传值

转载 2013年12月04日 12:46:41

一、通过静态变量

特点:传值是双向的,实现简单

 

 

实现代码如下:

在一个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赋值,以便其他窗体调用

 

二、公共变量传值

这种方法就是利用一个公共变量,先把需要的值存放到这个公共变量,然后需要的时候再通过读取该变量的值来使用

 

例子

Form1:

public static string Form1Value; // 注意,必须申明为static变量

private void button1_Click(object sender, EventArgs e)

{

Form1Value = "来自Form1";

new Form2().Show();

}

 

Form2:

private void Form_Load(object sender, EventArgs e)

{

MessageBox.Show(Form1.Form1Value);

}

这种方式传值,理解和使用上都相对的简单,但是容易让变量串值,比如第一次修改为“a”,而第二次修改为“b”,则有可能本来需要“a”值的结果变成了“b”。

 

 

三、通过窗体的公有属性值

特点:实现简单

 

 

实现代码如下:

在窗体Form2中定义一个公有属性Form2Value,获取和设置textBox1的文本值

public string Form2Value

{

get

{

return this.textBox1.Text;

}

set

{

this.textBox1.Text = value;

}

}

 

在窗体Form1中这样调用

Form2 f2 = new Form2 ( );

f2.Form2Value = "Ok"; //Form2textBox1赋值Ok

f2.ShowDialog ( );

 

 

四、传参式传值

此方法顾名思义就是将需要的值一参数形式传递给需要值的窗体

 

例子

Form1:

private void button1_Click(object sender, EventArgs e)

{

new Form2("来自Form1").Show();

}

Form2:

public Form2(string value)

{

InitializeComponent();

MessageBox.Show(vaue);

}

此种窗体间传值方法明显优与第一种的传值参数,也不会出现串数据现象,但是需要注意修改Form2的构造函数,每个窗体的默认构造函数默认都是无参数的,因此需要去修改构造函数。

 

 

五、通过构造函数

特点:传值是单向的(不可以互相传值),实现简单

实现代码如下:

在窗体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

 

 

参考资料:     WinForm窗体间如何传值       http://www.studyofnet.com/news/243.html

 

相关文章推荐

Winform中利用委托实现窗体之间的传值

下面我实现一个最简单的页面传值功能,相信初学者能一看就明白。 点击打开按扭,打开传输值窗体 1 public partial class Form1 : Form 2 ...
  • yw1688
  • yw1688
  • 2016年06月21日 19:12
  • 403

C# 超大文件发送与接收

发送端部分代码:         public void startSendFileThread() {                         try             {   ...

WinForm 窗体之间传值

  • 2013年04月25日 16:24
  • 80KB
  • 下载

winform窗体之间传值的几种方法

  • 2011年12月09日 10:18
  • 44KB
  • 下载

Visual Studio 中两个窗体(WinForm)之间相互传值的方法

编写WinowsForm应用程序时,实现两个窗体之间相互传递值的方法其实很简单。以下用一个例子说明:在名为FormMain主窗体运行过程中利用名为FormInfo窗体,获取用户输入信息,并将这些信息返...

winform+c#之窗体之间的传值

窗体传值可以分为两类。1、主窗体往子窗体传值有两种方法,一种是在子窗体提供重载构造函数,利用重载构造函数传递值,适用于传值数量比较少;第二种是,在子窗体中定义一个主窗体对象,然后就可以接收到主窗体的属...

Iframe窗体之间相互传值

  • 2013年09月06日 13:05
  • 1KB
  • 下载

两窗体之间传值

  • 2013年07月05日 09:04
  • 36KB
  • 下载

winform窗体间传值

推荐使用第6与第7方法 1.通过构造函数 特点:传值是单向的(不可以互相传值),实现简单 实现代码如下: 在窗体Form2中 int value1; string value2; ...

form窗体之间传值

  • 2014年12月25日 15:35
  • 46KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WinForm窗体之间传值
举报原因:
原因补充:

(最多只允许输入30个字)