在C#Winforms中,我想使用DataGridView作为一个简单的小部件来存储要显示给用户的信息。为此,我想创建一个5x10单元格的表格。
经过一些研究,解决方案往往只允许一次添加一行或一列。我希望最初和直接创建整个网格,所以我可以开始使用数据填充它,就像使用标准C#2D阵列一样。
最简单的方法是什么?函数头可能如下所示:
createCells(DataGridView dgv, int cols, int rows) {}
如果需要,应该快速并且可以稍后将cols和行更改为更大或更小的数字。
答案 0 :(得分:4)
顺便说一句,可能会出现如下错误:
列的总和'FillWeight值不能超过65535
要避免这种情况,请将AutoGenerateColumns
属性设置为false
,并为生成的每列设置FillWeight
至1
:
dgv.AutoGenerateColumns = false;
for (int i = 1; i <= columns; i++)
{
dgv.Columns.Add("col" + i, "column " + i);
dgv.Columns[i - 1].FillWeight = 1;
}
for (int j = 0; j < rows; j++)
dgv.Rows.Add();
答案 1 :(得分:2)
你可以通过这种方式使用for循环:
private DataGridView DGV_Creation(DataGridView dgv, int columns, int rows)
{
for (int i = 1; i <= columns; i++)
{
dgv.Columns.Add("col" + i, "column " + i);
}
for (int j = 0; j < rows; j++)
{
dgv.Rows.Add();
}
return dgv;
}
用以下方式调用:
this.dataGridView1 = DGV_Creation(dataGridView1, 5, 10); // 5 columns, 10 rows (empty rows)
或:
private void DGV_Creation(ref DataGridView dgv, int columns, int rows)
{
for (int i = 1; i <= columns; i++)
dgv.Columns.Add("col" + i, "column " + i);
for (int j = 0; j < rows; j++)
dgv.Rows.Add();
}
用它来表示:
DGV_Creation(ref this.dataGridView1, 5, 10); //5 columns, 10 rows (empty rows)