我有一个TabControl
和DataGridView
的自定义控件,我已将其添加到名为“DGV”的WinForm
,并在该控件上写了两个方法,就像这样:
public void addTabs(string str)
{
tabControl1.TabPages.Add(str, str);
tabControl1.TabPages[str].Controls.Add(dataGridView1);
}
public void fillDataGrid(string Name, long Size1, long Size2)
{
int cols = dataGridView1.Rows.Add();
DataGridViewRow row = dataGridView1.Rows[cols];
row.Cells["FileName"].Value = Name;
row.Cells["Size"].Value = Size1 + " Kb";
row.Cells["CompressedSize"].Value = Size2 + " Kb";
row.Cells["Format"].Value = "Zip";
}
那么在我的表格中,我正在这样做:
foreach (FileInfo f in dInfo.GetFiles("*.zip"))
{
string n = Path.GetFileNameWithoutExtension(f.Name);
Dgv.addTabs(n);
string totalPath = Tx.Text + "\\" + f;
using (ZipFile zip = ZipFile.Read(totalPath))
{
foreach (ZipEntry zp in zip)
{
Dgv.fillDataGrid(zp.FileName, zp.CompressedSize, zp.UncompressedSize);
}
}
}
这样做只有tabPage将包含DataGridView
中的所有数据。在循环中创建新的DataGridViews
然后将它们添加到TabControl
就行了,但问题是我想管理DataGridView
单元格中的选定项目,所以,我需要找到一种方法将循环数据正确添加到相应的tabPage DataGridView
。希望有人可以帮我找到一种方法来重复使用DataGridView
每个标签或找到更好的方法来做我想要的。
答案 0 :(得分:1)
查看DataSet类并将数据添加到该类。将您的数据网格视图绑定到一个数据集,并使用dgvs的任意组合来编辑,选择,修改和传递选定的值等