将选定的行gridview传递到另一个窗体上的另一个gridview

时间:2013-10-07 08:19:09

标签: c# database visual-studio-2010 datagridview

因为我还是c#的新手,我无法将所选行从datagridview1(表单1)传递到datagridview2(表单2)假设我必须传递大量列,我该怎么做?

如果可能的话,我可以在选择多行时执行此操作并相应地传递到另一个数据网格视图吗?

我尝试过传递给另一个文本框,但这并不理想

if (tableListBox.SelectedIndex == 2)                
{
  foreach (DataGridViewRow dr in dataGridView1.SelectedRows)
  {
      int counter = 0;
      ID = dr.Cells[1].Value.ToString();
      while (counter < dataGridView1.Columns.Count)
      {
         ColumnsHeader = dataGridView1.Columns[counter].HeaderText;
         CellsValue = dr.Cells[counter].Value.ToString();
         pass += ColumnsHeader + "        " + CellsValue + "  " + "\n";
         counter++;
      }
   Form4 form4 = new Form4(pass, dr.Cells["Deposition Date"].Value.ToString(), ID, tableListBox.SelectedIndex, dr.Cells["Deposition Date"].Value.ToString());
   form4.Show();
   break;
   }  
}

2 个答案:

答案 0 :(得分:3)

如果您的GridView绑定到一个对象,您可以获取绑定对象并将其发送到form2,因为它具有您需要的所有信息。

if (tableListBox.SelectedIndex == 2)
            {
                List<object> sendingList = new List<object>();
                foreach (DataGridViewRow dr in dataGridView1.SelectedRows)
                {
                    int counter = 0;
                    sendingList.Add(dr.DataBoundItem);

                } 
                    Form4 form4 = new Form4(sendingList);
                    form4.Show();
                    break; 
            }

我假设你的Form4类有一个带有List参数的构造函数

答案 1 :(得分:-2)

            List<object> sendingList = new List<object>();
            foreach (DataGridViewRow dr in dataGridView1.SelectedRows)
            {
                 Form4 form4 = new Form4(richtextbox.text)
                 Form4.Show();
            }

这会将当前表单的结果传递给下一个表单