如何在Windows窗体应用程序中将数据从一个gridview获取到另一个gridview?

时间:2013-12-16 11:30:48

标签: c# winforms

我在同一个表单中使用了两个网格视图,我想将选定的整行传递给另一个网格视图,到目前为止我已经尝试但没有得到它。

4 个答案:

答案 0 :(得分:0)

试试这个

    internal static class DataGridViewExtensions
    {
        public static void CloneRowWithValues(this DataGridViewRow SingleRow, DataGridView Target)
        {
            DataGridViewRow Results = (DataGridViewRow)SingleRow.Clone();
            for (Int32 Row = 0; Row < SingleRow.Cells.Count; Row++)
            {
                Results.Cells[Row].Value = SingleRow.Cells[Row].Value;
            }
            Target.Rows.Add(Results);
        }
    }

来源:http://social.msdn.microsoft.com/Forums/en-US/3969bcad-f131-4843-89e2-57a91705fe4e/form1-gridview-selected-rows-data-sendtransfer-on-form2-gridview-rows-by-button-click

答案 1 :(得分:0)

这里解决你的问题:

DataGridView1.Rows.Add(DataGridView2.Rows[0].Clone());

0的实例你可以使用你想要从DGV2移动到DGV1的所选索引。

答案 2 :(得分:0)

来自 Gridview_1的所选行使用此代码&amp;事件(说 RowHeaderMouseClick 事件)

private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
            DataRow r=dataGridView1.Rows[e.RowIndex];
            Pass_To_Grid2(r);  // Send to Other Grid View..
}

private void Pass_To_Grid2(DataRow r)
{
     dataGridView2.Rows.Add(r); /// Must have Same Fields
}

请使用Drag & Drop等高级功能。这给了一些额外的功能(用户友好的应用程序。)

答案 3 :(得分:0)

       private void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
            int selectedIndex=dataGridView1.SelectedRows[0].Index;
            CopyColumns();          
            for (int i = 0; i < dataGridView1.Columns.Count; i++)
                dataGridView2.Rows[0].Cells[i].Value = dataGridView1.Rows[selectedIndex].Cells[i].Value;
        }

        void CopyColumns()
        {
            for (int i = 0; i < dataGridView1.Columns.Count; i++)
                dataGridView2.Columns.Add(i.ToString(),dataGridView1.Columns[i].HeaderText);
        }