Zusammenfassung der Werteübertragung zwischen C#-Formularen
1. Werte vom übergeordneten Formular an das untergeordnete Formular übergeben
Schreiben Sie in das übergeordnete Formular:
FormChild fc = new FormChil();//新建一个子窗体 fc.ShowDialog(this);//以上两句即实现了子窗体和父窗体的联系 textBox2.Text = fc.Str1;//已实现联系,可以传值
2. Es gibt zwei Möglichkeiten, Werte vom Unterformular an das übergeordnete Formular zu übergeben
:
(1) Schreiben Sie in das Unterformular:
FormParent fp = (FormParent)this.Owner;//实现联系 textBox1.Text = fp.Str1;//已实现联系,可以传值
(2) Verwenden Sie den Konstruktor des Unterformulars, um den Wert des übergeordneten Formulars zu übergeben (der Code lautet wie folgt), Sie können einen oder zwei Werte eines übergeordneten Formulars übergeben. Wenn viele Werte übertragen werden müssen, können Sie ArrayList verwenden oder das Formular direkt übertragen (der Beispielcode überträgt das Formular direkt). > Zusammenfassung: Nehmen Sie das Formularobjekt und den spezifischen Wert, der übertragen werden soll. Kontakt
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; } } }