C# Summary of value transfer between forms
1. Pass value from parent form to child form
Write in the parent form:
FormChild fc = new FormChil();//新建一个子窗体 fc.ShowDialog(this);//以上两句即实现了子窗体和父窗体的联系 textBox2.Text = fc.Str1;//已实现联系,可以传值
2. Pass the value from the subform to the parent form
There are two methods:
(1) Write in the subform:
FormParent fp = (FormParent)this.Owner;//实现联系 textBox1.Text = fp.Str1;//已实现联系,可以传值
(2) Use the constructor of the subform to pass in the value of the parent form (the code is as follows), you can pass one or two parent forms If there are many values to be transferred, you can use ArrayList, or you can directly transfer the form (the sample code directly transfers the form)
Summary: Seize the connection between the form object and the specific value to be transferred
Code:
using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestTransValue { public partial class Form1 : Form { private string form1Text; public string Form1Text { get { return form1Text; } set { form1Text = value; } } public Form1() { InitializeComponent(); form1Text = "这是来自Form1的Text"; } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.ShowDialog(this); textBox1.Text = f2.Form2Text;//以上三句即可实现从子窗体向父窗体的传值 } private void button2_Click(object sender, EventArgs e) { Form3 f3 = new Form3(this); f3.ShowDialog(this); textBox2.Text = f3.Form3Text;//以上三句即可实现从子窗体向父窗体的传值 } } }
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace TestTransValue { public partial class Form2 : Form { private string form2Text = "这是来自form2的Text"; public string Form2Text { get { return form2Text; } set { form2Text = value; } } public Form2() { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { Form1 f1 = (Form1)this.Owner; textBox1.Text = f1.Form1Text;//以上两句即可实现子窗体获取父窗体的值(需要在父窗体中声明) } } }
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace TestTransValue { public partial class Form3 : Form { private string form3Text = "这是来自form3的Text"; Form1 f1; public string Form3Text { get { return form3Text; } set { form3Text = value; } } public Form3(Form1 form1) { InitializeComponent(); f1 = form1; } private void Form3_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { textBox1.Text = f1.Form1Text; } } }
The above is the summary of value transfer between C# forms. For more related content, please pay attention to the PHP Chinese website (m.sbmmt.com) !