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 に答える