下面是关于C#窗体传值代码方法的完整攻略。
一、通过构造函数传值
窗体类在实例化时可以通过构造函数传参,实现值的传递。具体步骤如下:
1.在接受传值的窗体中定义传值的变量和对应的构造函数。
public partial class FormB : Form
{
public string UserName;
public FormB(string userName)
{
InitializeComponent();
this.UserName = userName;
}
}
2.在调用窗体的地方中,在实例化窗体时传入参数。
string userName = "张三";
FormB formB = new FormB(userName);
formB.ShowDialog();
二、通过属性传值
通过窗体的public属性传值,可以在窗体间实现数据共享。具体步骤如下:
1.在接受传值的窗体中定义传值的属性:
public partial class FormB : Form
{
public string UserName { get; set; }
//...
}
2.在调用窗体的地方中,设置传值的属性:
string userName = "张三";
FormB formB = new FormB();
formB.UserName = userName;
formB.ShowDialog();
除了上述两种传值方式,还有通过静态变量传值、通过事件传值等方法,不过上面的两种方式是比较常用和简单的方法。
示例说明
下面通过两个示例进一步说明如何在C#窗体之间传值。
示例1:从窗体A向窗体B传值
假设窗体A中有一个文本框,需要向窗体B中的标签展示文本框中的内容。具体步骤如下:
1.在窗体B中定义传值的属性。
public partial class FormB : Form
{
public string UserName { get; set; }
//...
private void FormB_Load(object sender, EventArgs e)
{
label1.Text = UserName;
}
}
2.在窗体A中实例化窗体B,并设置传值的属性。
private void button1_Click(object sender, EventArgs e)
{
string userName = textBox1.Text;
FormB formB = new FormB();
formB.UserName = userName;
formB.ShowDialog();
}
这样,当在窗体A中点击按钮后,弹出窗体B,在窗体B中的标签上展示窗体A中文本框的内容。
示例2:从窗体B向窗体A传值
假设窗体B中有一个文本框,需要将文本框中的内容传递给窗体A进行处理。具体步骤如下:
1.在窗体B中定义一个事件。
public partial class FormB : Form
{
public delegate void PassValue(string value);
public event PassValue pasValueEvent;
//...
private void button1_Click(object sender, EventArgs e)
{
if (pasValueEvent != null)
pasValueEvent(textBox1.Text);
this.Close();
}
}
2.在窗体A中实例化窗体B,并订阅事件。
public partial class FormA : Form
{
public FormA()
{
InitializeComponent();
}
//...
private void button1_Click(object sender, EventArgs e)
{
FormB formB = new FormB();
formB.pasValueEvent += new FormB.PassValue(ReceiveValue);
formB.ShowDialog();
}
private void ReceiveValue(string value)
{
label1.Text = value;
}
}
这样,在窗体A中点击按钮后,弹出窗体B,在窗体B中输入文本后点击确认按钮,将文本框中的内容传递给窗体A中的标签展示出来。
以上就是通过构造函数和属性传值的两种C#窗体传值的方法,以及两个示例说明,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#窗体传值代码方法 - Python技术站