首页 > 解决方案 > c# - 整数表 - datagridview

问题描述

我试图在 Windows 窗体上显示一个 datagridview。(对于数独)我的来源是一个整数表。

我正在使用数据源,但运行时没有显示。

public Form1()
        {
            InitializeComponent();

            int[,] my_table = new int[9, 9] {
                    { 2,1,8,3,5,7,6,4,9},
                    { 5,7,3,4,9,6,8,2,1},
                    { 6,9,4,1,8,2,3,5,7},
                    { 1,6,9,5,2,8,4,7,3},
                    { 3,5,2,9,7,4,1,8,6},
                    { 4,8,7,6,1,3,2,9,5},
                    { 7,3,5,2,4,1,9,6,8},
                    { 8,2,1,7,6,9,5,3,4},
                    { 9,4,6,8,3,5,7,1,2}
                };


            dataGridView1.DataSource = my_table.ToString();

            dataGridView1.Refresh();

            dataGridView1.Invalidate();
        }

我的结果是一个灰色的正方形。

请问你能帮帮我吗 ?

PS:对不起我的英语,我是法国人

标签: c#winformsdatagridviewdatasourcesudoku

解决方案


好的,我找到了。

public Form1()
{
    InitializeComponent();

    int[,] my_table = new int[9, 9] {

                { 8,2,3,4,5,9,1,6,7},
                { 6,9,7,8,1,2,5,6,4},
                { 5,1,4,6,7,3,2,9,8},
                { 7,4,1,3,9,6,8,2,5},
                { 3,6,5,1,2,8,7,4,9},
                { 2,8,9,5,4,7,6,1,3},
                { 1,5,2,7,3,4,9,8,6},
                { 9,3,8,2,6,5,4,7,1},
                { 4,7,6,9,8,1,3,5,2},

            };


    dataGridView1.DataSource = FillDTB(my_table) ;

    dataGridView1.Refresh();


    for(int ii=0; ii<9; ii++)
    {
        for (int jj = 0; jj < 9; jj++)
        {
            richTextBox1.Text += my_table[ii, jj];
            if (jj != 8)
            {
                richTextBox1.Text += ".";
            }
        }
        richTextBox1.Text += Environment.NewLine;


    }


     dataGridView1.Invalidate();

}

private DataTable GetDTB(int count)
{
    DataTable tb = new DataTable();
    for (int i = 1; i < count + 1; i++)
    {
        tb.Columns.Add();
    }
    return tb;
}

private DataTable FillDTB(int[,] matrix, int count = 9)
{


    DataTable dtb = GetDTB(count);

    for (int ii = 0; ii < count; ii++)
    {

        DataRow my_line;
        my_line = dtb.NewRow();

        for (int jj = 0; jj < count; jj++)
        {
            my_line[jj] = matrix[ii, jj];
        }

        dtb.Rows.Add(my_line);

    }

    return dtb;
 }//*/

这是工作,但没有回应为什么我不能直接在 datagridview 中使用我的二维。

谢谢


推荐阅读