首页 > 解决方案 > 在 DataGridView 中显示二维数组

问题描述

我已经针对 N 的每个新值创建了新列,现在它只显示每行的最后一列,而且列名从“0”开始我想从“1”开始

private void printBoard(int[,] board,int N)
{
    for (int i = 0; i < N; i++)
    {
          DataGridViewRow row = new DataGridViewRow();              
        for (int j = 0; j < N; j++)
        {
            if (i > 0 || j > 0)
            {
                dataGridView1.ColumnCount = N;
                row.CreateCells(dataGridView1);                  
                dataGridView1.Columns[j].Name = j.ToString();
                    row.Cells[j].Value = board[i, j];
            }
        }
       this.dataGridView1.Rows.Add(row);
    }
}

这是输出:

在 DataGridView 中显示二维数组

标签: c#.netwinformsdatagridview

解决方案


在填充板单元之前初始化列和行:

private void printBoard(int[,] board, int N)
{
    // create columns
    dataGridView1.ColumnCount = N;
    for (int c = 0; c < N; c++)
        dataGridView1.Columns[c].Name = c.ToString();

    // create N empty rows
    dataGridView1.Rows.Add(N);

    // fill cells
    for (int r = 0; r < N; r++)
    {
        for (int c = 0; c < N; c++)
        {              
            dataGridView1[c, r].Value = board[r, c];
        }
    }
}

推荐阅读