簡體   English   中英

如何在現有行之后將新行添加到datagridview中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM