如何在现有行之后向datagridview添加新行

时间:2012-07-15 07:20:13

标签: c# datagridview

在c#中如何在现有行之后向datagridview添加新行。

我试过grdshedule.Rows.Add(); 但是所有行都在现有行之前添加

4 个答案:

答案 0 :(得分:1)

确保datagridview的 AllowUserToAddRows 属性 False 。就像你在程序化之前尝试过一样;

datagridview.Rows.Add();

答案 1 :(得分:0)

grdshedule.Rows.Insert(grdshedule.Rows.Count-1, newRow);

答案 2 :(得分:0)

您的行没有自动排序,因此您无法在底部看到新行,这意味着您必须在添加新行后使用行

请按例http://msdn.microsoft.com/en-us/library/0868ft3z.aspx

排序
**Line Taken from MSDN Remarks**
Rows in the control are not automatically sorted when new rows are added.

请阅读MSDN http://msdn.microsoft.com/en-us/library/x0akdhcd.aspx

的完整评论

答案 3 :(得分:0)

在现有行之后或表末尾添加新行时,我遇到了与DataGridView相同的问题。

在花了一些时间之后,我想出了为什么我不能在表的末尾添加行。这并不是datagridview有任何问题或限制,但它确实在我的代码中。但是,datagridview每次都会在表的末尾添加新行。

我真的希望你发布一些代码,这对你给出答案很有帮助。

无论如何,在我的程序中,我有一个类,我可以从中创建对象列表。我的列表实际上是一个ArrayList,我按照它们在列表中的顺序显示这些对象。每当我从List中添加或删除对象时,它都会在datagridview上以1对1反映出来。换句话说,如果对象在ArrayList中以相反的顺序列出,那么这就是对象在Datagridview中显示的顺序。这并不意味着行被添加到现有行的顶部,尽管它看起来像我。

我的猜测是你有一个你在程序中维护的列表。您可以在此列表中获取要在datagridview上显示的信息。如果我说的正确,那么您可能会根据数据网格视图中当前选择的行将项目插入程序中的某个位置。如果是这种情况,那么您当前的项目将被插入到ArrayList中所选项目的位置。这会导致列表从ArrayList中的所选项目中将所有内容移动一个。因此,当您在datagridview中显示项目列表时,看起来新表格没有添加到表格的末尾。

要解决此问题,首先需要添加一个新的空行:

DGrid.Rows.Add;

然后,将新项目插入列表的最后:

var newitem := new Object;
ArrayList.insert(DGrid.RowCount-1,newitem);

然后,根据此ArrayList更新datagridview。现在,您的datagridview将按预期运行。

在我修复之前,我的datagridview一直表现得像是在顶部以相反的顺序插入新行。