以编程方式创建X列乘Y行的DataGridView的最简单方法
本文关键字:DataGridView 行的 最简单 方法 列乘 编程 方式 创建 | 更新日期: 2024-10-23 06:55:20
在C#Winforms中,我想使用DataGridView作为一个简单的小部件来存储要显示给用户的信息。为此,我想创建一个表格,比如5x10个单元格。
经过一些研究,解决方案往往允许一次只添加一行或一列。我希望最初直接创建整个网格,这样我就可以开始用数据填充它,就像用标准的C#2D数组一样。
做这件事最简单的方法是什么?函数头可能如下所示:
createCells(DataGridView dgv, int cols, int rows) {}
如果需要的话,它应该可以很快地将列和行更改为更大或更小的数字。
顺便说一句,可能会出现以下错误:
列的填充权重值之和不能超过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();
您可以通过以下方式使用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)