如何将 DataGridView.Rows.Columns 的值从 Form 2 获取到 Form 1

How to get values of DataGridView.Rows.Columns from Form 2 to Form 1

我想访问 Form - 1 中的数据网格视图行和列值并显示在文本框中。

我在下面写这段代码:

Form2 form2 = new Form2();
DataGridView data = new DataGridView();
data = form2.qualitySetupDataGridView;

MessageBox.Show(data.Rows[0].Cells[1].Value.ToString());

错误信息:索引超出范围。必须为非负数且小于集合的大小。 参数名称:index

注意:DataGridView 修饰符设置为 public。我在 form-2 中放置的 DataGridView 中有 3-4 条记录。

您正在 Form1 中创建 Form2 的新实例,因此有一个空的 DatagridView。您应该传递 DatagridView 的当前实例,例如:

表格 1:

Fawad 已编辑:

您忘记了创建对象:这可以完成工作,但它会弹出表单 2 并等待一秒钟以获取数据,然后重新关闭,这并不完美,但可以完成工作。

Form2 f2 = new Form2();
Form2.Show();
Form2.Hide();

Form2 f = Application.OpenForms.OfType<Form2>().ElementAt<Form2>(0); //Get current open Form2
DataGridView data = f.qualitySetupDataGridView;
MessageBox.Show(data.Rows[0].Cells[1].Value.ToString());