C# 如何将datagridview单元格的值传递给另一个窗体

C# 如何将datagridview单元格的值传递给另一个窗体,c#,winforms,C#,Winforms,有两种形式 在第一种形式中,有一个文本框和一个图片框 单击图片框时,它会打开第二个表单,其中包含datagridview 我想要的是:当我点击datagridview的单元格时,它的值应该显示在第一个表单的文本框中 我不想在第二个表单中创建第一个表单的对象,因为网格视图的数据必须传递到多个表单我将在第二个表单中定义一个委托,并从第一个表单向其分配一个方法 表格2: public Action<string> DataSelectedCallback; private void da

有两种形式

在第一种形式中,有一个文本框和一个图片框

单击图片框时,它会打开第二个表单,其中包含datagridview

我想要的是:当我点击datagridview的单元格时,它的值应该显示在第一个表单的文本框中


我不想在第二个表单中创建第一个表单的对象,因为网格视图的数据必须传递到多个表单

我将在第二个表单中定义一个委托,并从第一个表单向其分配一个方法

表格2:

public Action<string> DataSelectedCallback;

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (DataSelectedCallback != null)
    {
        var cell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
        DataSelectedCallback(cell.Value)
    }
}

您需要使用与正在运行的表单相同的表单实例。在下面的帖子中看到我的代码:你能添加一些代码吗?天哪,不要再添加了。这不再是关于在表单之间传递值的问题。请感谢您的回答jdweng感谢您的回答jdweng但是在我的项目中有很多表单,比如第一个表单包含文本框和图片框,第二个表单包含datagrid视图。在您的解决方案中,您已经在第一个表单中创建了第二个表单的对象并使用了它。但是我想要通用的解决方案
var form2 = new Form2();
form2.DataSelectedCallback = cellData =>
    {
        // do something with cellData
    };
form2.Show();