将选定的行网格视图传递到另一个窗体上的另一个网格视图

本文关键字:网格 另一个 视图 窗体 | 更新日期: 2023-09-27 18:34:15

由于我仍然是 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;
   }  
}

将选定的行网格视图传递到另一个窗体上的另一个网格视图

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

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

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