データ グリッド ビューから同じフォームの他のデータ グリッド ビューに 1 つまたは複数の行をコピーする方法。ここでは、最初のグリッドから検索するオプションを検索し、一致する行が見つかった場合はそれらを 2 番目のグリッドにコピーします。どうすればこれを達成できますか?
質問する
981 次
1 に答える
1
次のようなことができます。
ConvertGridToTable(); // Add data in Datatabledt from gridview
Clipboard.Clear();
DataObject data = new DataObject(DataFormats.Serializable, Datatabledt);
MessageBox.Show("Data Copied.");
Clipboard.SetDataObject(data);
これで Datatabledt がクリップボードで利用可能になり、これを 2 番目のグリッドビューに貼り付けることができます。
DataObject data = (DataObject)Clipboard.GetDataObject();
DataTable dt = (DataTable)data.GetData(DataFormats.Serializable);
foreach (DataRow dr in dt.Rows)
{
dtData.ImportRow(dr);
}
dtData.AcceptChanges();
grdProgramData.DataSource = dtData;
MessageBox.Show("Data Pasted.");
編集:
1 つ以上の行については、選択した行をループすることでそれを実現できます。
編集
これは ConvertGridToTable のコンテンツです
private void ConvertGridToTable()
{
if (Datatabledt.Rows.Count > 0)
{ }
Datatabledt = dtData.Clone();
foreach (DataGridViewRow gr in YOURGRIDVIEW.SelectedRows)
{
DataRow dc = Datatabledt.NewRow();
dc["KEY-FIELD"] = Int32.Parse(gr.Cells[0].Value.ToString());
.....
Datatabledt.Rows.Add(dc);
}
Datatabledt.AcceptChanges();
}
于 2012-07-10T07:03:40.553 に答える