如何从表单2到表单1获取DataGridView.Rows.Columns的值

时间:2015-02-19 10:59:17

标签: c# winforms datagridview

  • DataGridView - 以表格形式放置 - 2
  • TextBox1 - 以表格形式放置 - 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 Modifiers设置为public。我在DataGridView中有3-4个记录,放在表单2中。

1 个答案:

答案 0 :(得分:1)

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

Form1中:

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());