我想将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
以便将其传递给另一种形式?
答案 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;
}