在 c# 中,如何在datagridview
现有行之后添加新行。
我试过grdshedule.Rows.Add();
但是所有行都在现有行之前添加
确保datagridview 的AllowUserToAddRows属性为False。就像你以前以编程方式尝试过的一样;
datagridview.Rows.Add();
在现有行之后或表末尾添加新行时,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 一直表现得好像它在顶部以相反的顺序插入新行。
grdshedule.Rows.Insert(grdshedule.Rows.Count-1, newRow);
您的行没有自动排序,因此您看不到底部的新行,这意味着一旦您在添加新行后必须重新使用您的行
排序请举例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的完整评论