2

C# Winforms では、DataGridView を単純なウィジェットとして使用して、ユーザーに表示する情報を格納したいと考えています。この目的のために、たとえば 5x10 セルのテーブルを作成したいと思います。

いくつかの調査の後、ソリューションでは、一度に 1 行または 1 列しか追加できない傾向があります。標準の C# 2D 配列の場合と同じように、グリッド全体を最初にすぐに作成して、データの入力を開始できるようにしたいと思います。

これについての最も簡単な方法は何ですか?関数ヘッダーは次のようになります。

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

必要に応じて、後で列と行をより大きな数またはより小さな数に変更することは、迅速かつ従順である必要があります。

4

2 に答える 2

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();
于 2012-08-04T05:14:31.840 に答える
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)
于 2012-08-04T04:59:00.670 に答える