以X行为单位以编程方式创建DataGridView的最简单方法

时间:2012-08-04 04:54:44

标签: c# winforms datagridview

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

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

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

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

如果需要,应该快速并且可以稍后将cols和行更改为更大或更小的数字。

2 个答案:

答案 0 :(得分:4)

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

  

列的总和'FillWeight值不能超过65535

要避免这种情况,请将AutoGenerateColumns属性设置为false,并为生成的每列设置FillWeight1

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)