c# 两窗体委托dagagridview
时间: 2023-07-27 17:11:20 浏览: 47
可以通过委托来实现两个窗体之间的数据传递和操作。
首先,在第一个窗体中定义一个委托类型,用于将datagridview中的数据传递给第二个窗体:
```
public delegate void DataTransferHandler(DataGridViewRow row);
```
然后在第一个窗体中定义一个事件,当用户点击datagridview中的某一行时触发该事件,并将该行数据传递给第二个窗体:
```
public event DataTransferHandler DataTransferEvent;
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
if (DataTransferEvent != null)
{
DataTransferEvent(row);
}
}
```
在第二个窗体中,定义一个方法来接收来自第一个窗体的数据:
```
public void ReceiveData(DataGridViewRow row)
{
// 处理传递过来的数据
}
```
然后在第二个窗体的构造函数中,将第一个窗体中的事件与第二个窗体的方法进行绑定:
```
public Form2(Form1 form1)
{
InitializeComponent();
form1.DataTransferEvent += new DataTransferHandler(ReceiveData);
}
```
这样,当用户在第一个窗体中点击datagridview中的某一行时,就会触发DataTransferEvent事件,将该行数据传递给第二个窗体的ReceiveData方法进行处理。