winform 2个form之间传递参数
时间: 2024-09-11 14:04:31 浏览: 58
在Windows Forms (WinForms) 中,两个Form之间的参数传递通常有几种方式:
1. **通过公共属性**:在两个Form中定义公共属性,并在需要的时候赋值给对方。例如,在FormA中设置一个属性,然后在FormB中读取这个属性。
```csharp
public partial class FormA : Form
{
public string MyParameter { get; set; }
}
public partial class FormB : Form
{
private void Button_Click(object sender, EventArgs e)
{
var formA = new FormA();
formA.MyParameter = "SomeValue";
formA.ShowDialog();
}
}
```
2. **事件方法**:FormA可以通过事件触发将数据传递给FormB。例如,FormA可以有一个事件,当用户点击按钮时,会触发该事件并携带参数。
```csharp
public delegate void PassDataEventHandler(string data);
public partial class FormA : Form
{
public event PassDataEventHandler OnPassData;
private void Button_Click(object sender, EventArgs e)
{
if (OnPassData != null)
OnPassData("Some Value");
}
}
public partial class FormB : Form
{
public FormB()
{
// 注册事件处理
FormA formA = new FormA();
formA.OnPassData += OnPassDataReceived;
}
private void OnPassDataReceived(string data)
{
// 在这里处理接收到的数据
}
}
```
3. **通过构造函数传参**:如果一个Form需要创建另一个Form作为其内部的一部分,可以在创建时传递参数。
```csharp
public partial class FormB : Form
{
private readonly string myParam;
public FormB(string param)
{
InitializeComponent();
myParam = param;
}
}
// 创建FormB时传递参数
var formB = new FormB("Some Value");
formB.ShowDialog();
```
阅读全文