我正在寻找一种以矩阵形式很好地输入数据的方法,并且来了
穿过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次,我可以正常编辑它。
答案 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。