以编程方式创建X列乘Y行的DataGridView的最简单方法

本文关键字:DataGridView 行的 最简单 方法 列乘 编程 方式 创建 | 更新日期: 2024-10-23 06:55:20

在C#Winforms中,我想使用DataGridView作为一个简单的小部件来存储要显示给用户的信息。为此,我想创建一个表格,比如5x10个单元格。

经过一些研究,解决方案往往允许一次只添加一行或一列。我希望最初直接创建整个网格,这样我就可以开始用数据填充它,就像用标准的C#2D数组一样。

做这件事最简单的方法是什么?函数头可能如下所示:

createCells(DataGridView dgv, int cols, int rows) {}

如果需要的话,它应该可以很快地将列和行更改为更大或更小的数字。

以编程方式创建X列乘Y行的DataGridView的最简单方法

顺便说一句,可能会出现以下错误:

列的填充权重值之和不能超过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)