[英]how to add new row in to a datagridview after the existing row
在c#中,如何在現有行之后將新行添加到datagridview
。
我嘗試了grdshedule.Rows.Add();
但是所有行都在現有行之前添加
確保datagridview的AllowUserToAddRows屬性為False 。 就像你以編程方式嘗試過的一樣;
datagridview.Rows.Add();
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/zh-cn/library/x0akdhcd.aspx
在現有行之后或表末尾添加新行時,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一直像在頂部以相反的順序插入新行一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.