WinForm 窗口之间传递参数的几种方法。(下面做了一个小示例,因其浅显易懂,就不加注释了。若有疑问可给我发邮件 yaotou.cn@qq.com) using System; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Linq; usingSystem.Text; usingSystem.Windows.Forms; namespaceWinPassValue { publicpartialclassMainForm : Form { publicMainForm() { InitializeComponent(); SelectedType(); } publicdelegatevoidChangeFormValue(string s1); //开始传递 privatevoidbtnPass_Click(object sender, EventArgs e) { if (cbmSelectedType.SelectedIndex == 3) { Form3 f3 = newForm3(txtValue); f3.Show(); } elseif (cbmSelectedType.SelectedIndex == 2) { Form2 f2 = newForm2(txtValue.Text); f2.Show(); } elseif (cbmSelectedType.SelectedIndex == 1) { Program.yourName = txtValue.Text; Form1 f1 = newForm1(); f1.Show(); } //利用Show方法重载实现。注意,此时要设置要传递控件访问权限为public 或 internal elseif (cbmSelectedType.SelectedIndex == 5) { Form5 f5 = newForm5(); f5.Show(this); } //委托事件传值 elseif (cbmSelectedType.SelectedIndex == 4) { Form4 f4 = newForm4(); //订阅事件 f4.MyEvent += newForm4.PassValue(myPassValue); f4.Show(); } } //定义方法 publicstringmyPassValue() { returntxtValue.Text.Trim(); } //定义方法用于选择传递参数的方式 privatevoidSelectedType() { string[] strValue = { "-请选择要传递的方式-","全局变量传递","构造函数传值","控件传值","委托事件传值", "Show方法重载!"}; cbmSelectedType.Items.AddRange(strValue); cbmSelectedType.SelectedIndex = 0; } privatevoidMainForm_Load(object sender, EventArgs e) { } } } using System; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Linq; usingSystem.Text; usingSystem.Windows.Forms; namespaceWinPassValue { publicpartialclassForm1 : Form { public Form1() { InitializeComponent(); } privatevoid Form1_Load(object...