簡體   English   中英

DataGridView RowCount 與 Rows.Count

[英]DataGridView RowCount vs Rows.Count

如果我有一個 DataGridView uxChargeBackDataGridView

以下語法是否不同但實際上相同?:

int numRows = uxChargeBackDataGridView.Rows.Count;
int numRowCount = uxChargeBackDataGridView.RowCount;

如果uxChargeBackDataGridView為空,則兩者都等於 1; 因此,如果其中任何一個等於 1,我可以假設用戶沒有輸入任何數據,這在邏輯上是否成立?

我的 WinForms 應用程序有一個名為RUN的按鈕 - 我可以使用上面的測試來決定是否啟用此按鈕,即僅number of rows is > 1時啟用該按鈕?

RowCount 獲取或設置 DataGridView 中顯示的行數。

Rows.Count 返回行數

兩種說法都是一樣的。 但是,要記住的一件事是“空”數據網格視圖只有在AllowUsersToAddRow屬性設置為 true 時才有 1 條記錄。 否則,行數將為 0。

編輯:我想補充一點,代替 MMK 的回答,如果您不手動或以編程方式更改 RowCount,它們將返回相同的值。 請參閱http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowcount.aspx

如果您反編譯程序集System.Windows.Forms.DataGridView ,您將看到:

public int RowCount
        {
            get
            {
                return this.Rows.Count;
            } 

因此, RowCount返回Rows.Count

以下語句返回相同的結果,但 RowCount 限制了 DataGridView 中顯示的行數。

int numRows = uxChargeBackDataGridView.Rows.Count;
int numRowCount = uxChargeBackDataGridView.RowCount;

檢查下面關於DataGridView.RowCount 屬性的注釋

如果 AllowUserToAddRows 為 true,則不能將 RowCount 設置為 0。在這種情況下,請調用 DataGridViewRowCollection.Clear 方法刪除除新記錄行之外的所有行。 在這種情況下,調用 Clear 與將 RowCount 設置為 1 的結果相同,但要快得多。

如果RowCount設置為小於當前值的值,則將從 Rows 集合的末尾刪除行。 如果 RowCount 設置為大於當前值的值,則行將添加到 Rows 集合的末尾。 附加行基於 RowTemplate 屬性中指定的行。

如果為真,則考慮默認空行。 它實現了 IBindingList 接口 參考: DataGridView - AllowUserToAddRows 做什么?

如果 DataGridView 綁定到數據,如果此屬性和數據源的IBindingList.AllowNew屬性都設置為 true,則允許用戶添加行。

如果 AllowUserToAddRows 為真,則至少一行將始終出現在新記錄的網格中。 要排除此行,請檢查行對象上的屬性 IsNewRow。

IsNewRow 可能可以解開謎團。 它可以給出 1 的含義。如果 IsNewRow 為 true,則已創建但其中沒有任何內容且未注冊。 如果 IsNewRow 為 false,則您已將 1 行填滿或部分填滿。 我希望這適合你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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