1

私は2つの勝利フォームを持っています。フォーム 1 にdataGridViewは、すべてのデータを収集するフォームがあります。
ここで、フォーム 1 で 1 つのボタンを押すと、フォーム 2 を表示し、フォーム 1 のデータ グリッド ビューのすべての行をフォーム 2 のデータ グリッド ビューにコピーする必要があります。

これどうやってするの?

これが不可能な場合、フォーム 1 のデータ グリッド ビューをフローティング コントロール (UI 上で自由に移動できる) にすることは可能ですか?

dataGridView以下のコードを使用して、同じ形式であるものから別のものにコピーできます。

private DataGridView CopyDataGridView(DataGridView dgv_org)
    {
        try
        {
            if (dataGridView2.Columns.Count == 0)
            {
                foreach (DataGridViewColumn dgvc in dgv_org.Columns)
                {
                    dataGridView2.Columns.Add(dgvc.Clone() as DataGridViewColumn);
                }
            }
            DataGridViewRow row = new DataGridViewRow();
            int k = 2;
            if (first == false)
            {
                k=0;
                first = true;
            }
                for (int i = k; i < dgv_org.Rows.Count; i++)
                {
                    row = (DataGridViewRow)dgv_org.Rows[i].Clone();
                    int intColIndex = 0;
                    foreach (DataGridViewCell cell in dgv_org.Rows[i].Cells)
                    {
                        row.Cells[intColIndex].Value = cell.Value;
                        intColIndex++;
                    }
                    dataGridView2.Rows.Add(row);
                }
                dataGridView2.AllowUserToAddRows = false;
                dataGridView2.Refresh();                
        }
        catch (Exception ex)
        {
            MessageBox.Show("Copy DataGridViw Error");
        }
        return dataGridView2;
    } 

しかし、form2にコピーできません。

4

4 に答える 4

0
private void CopyAll(DataGridView from, DataGridView to)
{
    if (to.Columns.Count == 0)
    {
        foreach (DataGridViewColumn dgvc in from.Columns)
        {
            to.Columns.Add(dgvc.Name, dgvc.HeaderText);
        }
    }

    to.Rows.Clear();

    foreach(DataGridViewRow dgvr in from.Rows)
    {
        List<string> cells = new List<string>();

        foreach(DataGridViewCell dgvc in dgvr.Cells)
        {
            cells.Add(dgvc.Value.ToString());
        }

        to.Rows.Add(cells.ToArray());
    }
}
于 2013-08-14T11:05:10.973 に答える