在未绑定的DataGridViews之间传输数据

时间:2012-01-30 14:59:16

标签: c# winforms datagridview

我在表单1中有一个包含未绑定数据的datagridview。如何从datagridview中传输另一个位于form2的datagridview2中的数据?请给我一些建议!

2 个答案:

答案 0 :(得分:1)

如果您将DataGridView绑定到表,则只需将Form2中的引用设置为表。在您的情况下,您可能希望以第二种形式引用实际的DataGridView。

从维护角度来看,它不是最好的编程风格 - 最好使用数据源。

以下是使用第一个DataGridView中的数据显示第二个DataGridView的一种方法的简单概念。它并不完美,但它应该向你展示这个想法。

public Form2(DataGridView dgvFromFom1) {
  InitializeComponent();

  foreach (DataGridViewColumn dc in dgvFromForm1.Columns) {
    dataGridView1.Columns.Add(dc.Name, dc.HeaderText);
  }

  foreach (DataGridViewRow dr in dgvFromForm1.Rows) {
    Object[] newRow = new object[dr.Cells.Count];

    for (int i = 0; i < newRow.Length; i++) {
      newRow[i] = dr.Cells[i].Value;
    }
    dataGridView1.Rows.Add(newRow);
  }      
}

但是,再次使用DataSource会更容易。

答案 1 :(得分:0)

您无需在FormsGrids之间传输数据。问题是,如果您认为我们需要共享它们之间的数据,只需定义一个包含数据的外观类,以及应用程序的所有部分(Forms,{{ 1}},其他东西)消耗来自该单个完全相同的实例的数据。

那就是。