如何将datagridview值设置为它的数据源

时间:2016-12-10 22:51:33

标签: c# datagridview

我想将datasource的{​​{1}}传递给另一个datagridview

这就是我这样做的方式:

Form

private void RationSummary_Click(object sender, EventArgs e)
{
    RationReportFrm RRFrm = new 
    RationReportFrm(HomeDetailsdgv.DataSource, RationFormulationdgv;

    RRFrm.ShowDialog();
}

现在的问题是:

其中一个public RationReportFrm(object RationTotalds, object HomeTotalds) { InitializeComponent(); AnimalPerformancedgv.DataSource = RationTotalds; ProteinValuedgv.DataSource = HomeTotalds; } 的{​​{1}}已由datasource设置,并且传递给datagridviews没有任何问题, 但是其中一个没有任何datatable并且它的单元格以编程方式填充,我应该如何将它的单元格值设置为它RationReportFrm以便将其传递给另一种形式?

1 个答案:

答案 0 :(得分:0)

我认为困难的方法是制作一种方法,将datagridview转换为datatable

private DataTable GetDTFromDGV(DataGridView dgv)
{
    var dt = new DataTable();

    foreach (DataGridViewColumn column in dgv.Columns)
    {
        if (column.Visible)
        {
            dt.Columns.Add();
            if (column.Name != "")
            {
                dt.Columns[column.Index].ColumnName = column.Name;
            }
        }
    }

    object[] CellValue = new object[dgv.Columns.Count];

    foreach (DataGridViewRow row in dgv.Rows)
    {
        for (int i = 0; i < row.Cells.Count; i++)
        {
            CellValue[i] = row.Cells[i].Value;
        }
        dt.Rows.Add(CellValue);
    }

    return dt;
}