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

本文详细介绍三种在窗体间传递数据的方法:使用公有变量、通过窗体属性和owner属性,以及利用静态变量。每种方法均附带具体代码示例,便于读者理解和实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上有关于窗体之间传值的解答,方法各异 

自己呢记性不好,参考别人的方法,实践了下,写下来,以后自己找的时候也就没那么麻烦了

窗体之间的传值方法

一  传一个公有变量过去

     以下是代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

//发送窗体 即需要传值出去的窗体
namespace 窗体之间传值
{
public partial class FormSender : Form
{
public FormSender()
{
InitializeComponent();
}

//声明一个静态公有的变量msg
public static string msg = "";

//按钮单击事件
private void BtnSender_Click(object sender, EventArgs e)
{
//取到文本框的值并赋值给msg
msg = txtSender.Text.Trim();

///以下为现实接受窗体 以及关闭该窗体
FormAccept Frmaccept = new FormAccept();

Frmaccept.ShowDialog();

this.Close();
}
}
}

---------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;


//接受窗体 即需要显示来自发送窗体的值
namespace 窗体之间传值
{
public partial class FormAccept : Form
{
public FormAccept()
{
InitializeComponent();
}

private void BtbAccept_Click(object sender, EventArgs e)
{
//打击鼠标 将传过来的值赋值给文本框
txtAccept.Text = FormSender.msg;

}
}
}

二  通过窗体的公有属性和owner属性(不是很理解) 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

//发送窗体 即需要传值出去的窗体
namespace 窗体之间传值
{
public partial class FormSender : Form
{
public FormSender()
{
InitializeComponent();
}

//声明变量
public string msg;

private void BtnSender_Click(object sender, EventArgs e)
{
//给变量赋值
msg = txtSender.Text;
//把FormSender作为FormAccept所有者传递给FormAccept
FormAccept frmaccept = new FormAccept();
frmaccept.ShowDialog(this);
}


}
}
-------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;


//接受窗体 即需要显示来自发送窗体的值
namespace 窗体之间传值
{
public partial class FormAccept : Form
{
public FormAccept()
{
InitializeComponent();
}

private void BtbAccept_Click(object sender, EventArgs e)
{
FormSender frmsender = (FormSender)this.Owner;

txtAccept.Text = frmsender.msg;

}
}
}

三   通过静态变量传递 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

//发送窗体 即需要传值出去的窗体
namespace 窗体之间传值
{
public partial class FormSender : Form
{
public FormSender()
{
InitializeComponent();
}

//声明一个静态字段
static string msg ;

//设置其公有属性
public string Msg
{
get { return msg; }
set { msg = value; }
}

//按钮单击事件
private void BtnSender_Click(object sender, EventArgs e)
{
//取到文本框的值并赋值给msg
Msg = txtSender.Text.Trim();

///以下为现实接受窗体 以及关闭该窗体
FormAccept Frmaccept = new FormAccept();

Frmaccept.ShowDialog();

this.Close();
}
}
}

---------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;


//接受窗体 即需要显示来自发送窗体的值
namespace 窗体之间传值
{
public partial class FormAccept : Form
{
public FormAccept()
{
InitializeComponent();
}

private void BtbAccept_Click(object sender, EventArgs e)
{
//打击鼠标 将传过来的值赋值给文本框
FormSender frmSender = new FormSender();

txtAccept.Text = frmSender.Msg;

}
}
}
--------------------

自己的一点小看法而已  欢迎批评指正

转载于:https://www.cnblogs.com/ShuiMu/articles/2437311.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值