0

データ グリッド ビューから同じフォームの他のデータ グリッド ビューに 1 つまたは複数の行をコピーする方法。ここでは、最初のグリッドから検索するオプションを検索し、一致する行が見つかった場合はそれらを 2 番目のグリッドにコピーします。どうすればこれを達成できますか?

4

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