2013-10-10 54 views
0

我有我的datagridview大量数据的* *,但我现在想,是只所选行传递到一种新形式的datagridview的* *,到目前为止,我只知道这行代码。它会有帮助吗?只传递选定行的DataGridView以一种新的形式

foreach (DataGridViewRow row in dataGridView1.SelectedRows) 
      { 
//pass selected row's from datagridview1(form1) to datagridview(form2) 
      } 

任何人都可以帮我解决这个问题吗?谢谢。

回答

0

声明像这样的形式1 newform:

System.Windows.Forms.Form f = System.Windows.Forms.Application.OpenForms["Form2"]; 

申报newform的datagridview的修饰符为public,然后添加在你的代码如下:

foreach (DataGridViewRow row in dataGridView1.SelectedRows) 
      { 

       ((Form2)f).dataGridView2.Rows.Add(row); 
      } 

试试这个,如果你发现任何错误,通知我...

+0

,所以我宣布System.Windows.Forms.Form中F = System.Windows.Forms.Application.OpenForms [ “newform”];在Form1, 和窗口2, 公共无效dataGridView1_CellContentClick(对象发件人,DataGridViewCellEventArgs E) { 的foreach(的DataGridViewRow行中dataGridView1.SelectedRows) { ((newform)F).dataGridView2.Rows.Add(行); } } (新形式)f)无法工作,名称空间无法找到。 – user2837847

+0

将newform的名称更改为form2,System.Windows.Forms.Application.OpenForms [“Form2”]; – yasmuru

0

你可以通过在form2中设置公共属性来做到这一点,如

public List<DataGridViewRow> Form1_SelectedRowsList

所以,你可以做对象转发像

form2 frm = new form2 { Form1_SelectedRowsList = dataGridView1.SelectedRows }

在form2_FormLoad事件中,你可以做

dataGridView2.DataSource = Form1_SelectedRowsList

相关问题