可以通过以下几种方法实现Winform两个窗体之间传值:
public partial class Form2 : Form
{
private string data;
public Form2(string data)
{
InitializeComponent();
this.data = data;
}
}
在调用目标窗体的地方,传递值给目标窗体的构造函数。
Form2 form2 = new Form2("传递的值");
form2.Show();
public partial class Form2 : Form
{
public string Data { get; set; }
}
在调用目标窗体的地方,设置目标窗体的属性值。
Form2 form2 = new Form2();
form2.Data = "传递的值";
form2.Show();
public partial class Form2 : Form
{
public static string data;
}
在调用目标窗体的地方,给目标窗体的静态变量赋值。
Form2.data = "传递的值";
Form2 form2 = new Form2();
form2.Show();
public partial class Form1 : Form
{
public event EventHandler<string> ValueChanged;
}
在目标窗体中订阅该事件,并在事件处理方法中获取传递的值。
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
Form1 form1 = new Form1();
form1.ValueChanged += Form1_ValueChanged;
}
private void Form1_ValueChanged(object sender, string e)
{
// 获取传递的值
}
}
在源窗体中触发该事件并传递值。
if (ValueChanged != null)
{
ValueChanged(this, "传递的值");
}
以上是常用的几种方法,可以根据具体场景选择适合的方式进行Winform窗体之间的值传递。