1

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

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

4

4 回答 4

1

确保datagridview 的AllowUserToAddRows属性为False。就像你以前以编程方式尝试过的一样;

datagridview.Rows.Add();
于 2013-01-22T22:54:07.807 回答
0

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

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

我真的希望您发布您的代码的某些部分,这将有助于为您提供答案。

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

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

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

DGrid.Rows.Add;

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

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

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

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

于 2012-08-10T16:24:46.590 回答
0
grdshedule.Rows.Insert(grdshedule.Rows.Count-1, newRow);
于 2012-07-15T07:24:33.410 回答
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的完整评论

于 2012-07-15T07:35:28.763 回答