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;

}

其余方法:数据库、文件、socket通道、WM_COPYDATA

时间: 2025-01-16 03:45:52

C#跨窗体传值的相关文章

C#跨窗体传值的几种方法分析第三版

窗体传值是在学习窗体应用程序时碰到的一类比较常见的问题,现将窗体传值方法做了一点总结,方法如下: <1>声明全局变量传值: 在Form1中声明全局变量,如下所示: 1 public static string str = "窗体1的值"; 通过Form1的button1_Click事件即可将此全局变量传递给Form2,Form1的全局变量str在Form2中可以直接访问,代码如下所示: 1 private void button1_Click(object sender,

C#跨窗体传值详解

一.父窗体传值给子窗体      创建一个Winform窗体应用程序项目,然后添加两个窗体frmChildWindow.frmParentWindow (1)通过Form类构造方法的重载传参 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text

WinForm跨窗体传值

1.另一窗体建公共变量listdataRow public List<DataGridViewRow> listdataRow = new List<DataGridViewRow>(); FRM_TR_CurrencyQueryEx_View2_DLCR frmTrCurrencyQueryEx = new FRM_TR_CurrencyQueryEx_View2_DLCR(cbx_selectType.Text); frmTrCurrencyQueryEx.ShowDialog

webform 跨窗体传值

Response.Redirect("url");       - - 服务端重定向 string  s = Request["key"];      -- 获取请求对象 session 存贮在服务端,占用服务器内存很好用,速度很快不要滥用,容易溢出 生命周期:20分钟,每一次新的请求都会刷新这个时间 浏览器一旦关闭,那么会断开此条Session的连接 Session里面能存储Object类型   可存储任何类型  保密性较好   Session   赋值 stri

webform(六)内置对象 跨页面传值

内置对象跨页面传值有六种:Request,Response,Session,Cookie,Application,VIewState. 一.Request和ResponseRequest request请求对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息.客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后通过request对象的相关方法来获取这些数据.request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项.response 响应对象在

ASP.NET跨页面传值——Server.Transfer

ASP.NET跨页面传值 这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效. Server.Transfer是从当前的ASPX页面转到新的ASPX页面,服务器端执行新页并输出,在新页面中通过Context.Handler来获得前一个页面传递的各种数据类型的值.表单数据.QueryString.由于重定向完全在服务器端完成,所以客户 端浏览器中的URL地址是不会

C# WinForm 父窗体 子窗体 传值

C# WinForm 父窗体 子窗体 传值 本次示例效果如下:Form1为父窗体(包含textBox1.button1)Form2为子窗体(包含textBox2.button2) 父窗体给子窗体传值==================1.点击Form1的button1 打开Form2  父窗体给子窗体传值 可以调用重载子窗体的构造函数 直接传入相关数值 public partial class Form1 : Form    {        public Form1()        {   

Winform跨窗体操作控件(使用委托)

Winform跨窗体操作控件是winform开发中很常见的形式,最常见且简单有效的方式便是使用委托的方式来进行操作,下面我将通过一个小实例来说明如何使用委托跨窗体实现控件操作. 实例介绍:两个窗体,Form1按钮打开Form2,然后在Form2的TextBox输入值在Form1的TextBox中显示出来. 一.项目结构 Form1窗体设计: Form2窗体设计: 二.代码实现 在Form2的代码中声明一个委托(写在Form2类外)-> public delegate void ChangeFor

前端跨页面传值

在很多时候需要用到跨页面传值,但是通过后台取值,这些值又不用放到后台去,所以没这必要而且增加http请求,这种情况下用前端跨页面传值就非常方便了 1.通过路径传值 用URL记录传值  <a href='Specific.aspx?idStr=val1&name=name1&sex=sex1</a> 在跳转页面后 通过下面方式取到路径,再把值分离出来var url = window.location.href; alert(url);因为url后面的?不会影响连接指向,所以