2

由于我还是 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;
   }  
}
4

2 回答 2

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 参数的构造函数

于 2013-10-07T08:34:59.067 回答
-2
            List<object> sendingList = new List<object>();
            foreach (DataGridViewRow dr in dataGridView1.SelectedRows)
            {
                 Form4 form4 = new Form4(richtextbox.text)
                 Form4.Show();
            }

这会将结果从当前表单传递到下一个表单

于 2013-10-10T02:36:56.623 回答