Windows窗体DataGridView无法在最后一行输入数据

时间:2015-12-06 11:09:31

标签: c# winforms datagridview

我正在寻找一种以矩阵形式很好地输入数据的方法,并且来了 穿过DataGridView控件。我动态创建和编辑它,到目前为止它工作得很好。但是,现在我遇到了这个奇怪的问题:我可以正常编辑所有单元格,但是当我到最后一行并尝试输入数据时,我看到我的值写在上面的行中的单元格值< / strong>即可。

这是我的代码示例:

            DataGridView table = new DataGridView();
            table.RowCount = 3;
            table.ColumnCount = 3;
            table.ColumnHeadersVisible = false;
            table.RowHeadersVisible = false;
            table.ScrollBars = ScrollBars.None;
            for (int i = 0; i < 3;++i)
                table.Columns[i].Width = 40;
            int width = 40 * 3;
            int height = 22 * 3;
            table.Width = width;
            table.Height = height;
            this.Controls.Add(table);

注意:这段代码的目的只是为了看看我能用控件做什么,它不应该做任何有用的事情。)

另外,我在论坛上看到有人说我应该禁止用户添加行,但是当我这样做时,我只有两行(而不是我指定的三行),而第三行的灰色区域应该是。

编辑:我注意到的另一个奇怪的事情是,如果我在最后一行的单元格中点击 3次,我可以正常编辑它。

1 个答案:

答案 0 :(得分:0)

我改变你的代码,这是有用的。 这样做:

 DataGridView table = new DataGridView();

        table.ColumnCount = 3;
        table.Rows.Add(3);
        table.ColumnHeadersVisible = false;
        table.RowHeadersVisible = false;
        table.ScrollBars = ScrollBars.None;
        for (int i = 0; i < 3; ++i)
            table.Columns[i].Width = 40;
        int width = 40 * 3;
        int height = 22 * 3;
        table.Width = width;
        table.Height = height;
        this.Controls.Add(table);
        table.AllowUserToAddRows = false;

首先添加列,然后使用table.Rows.Add(行数)添加行,并在代码集的末尾允许用户将行添加到false。