2012-07-23 15 views
12

Bir DataGridView uxChargeBackDataGridView varsa.DataGridView RowCount vs Rows.Count

sözdizimsel farklı ama uxChargeBackDataGridView boş sonra her iki 1'e eşit olan ?:

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

durumunda etkili aynı takip ediyor; Bu nedenle mantıken, bunlardan herhangi birinin 1'e eşit olması durumunda, kullanıcının herhangi bir veri girmediğini varsayabilir miyim?

WinFroms'ın bir düğmesi RUN vardır; bu düğmenin etkin olup olmadığına karar vermek için yukarıdaki testi kullanabilir miyim, yani yalnızca number of rows is >1?

cevap

11

Her iki ifade de aynıdır. Ancak, hatırlanması gereken bir şey, "boş" datagridview öğesinin yalnızca AllowUsersToAddRow özelliği true olarak ayarlanmışsa 1 kaydın olmasıdır. Aksi takdirde, satır sayısı 0 olacaktır.

EDIT: MMK'nın cevabı yerine, RowCount'u el ile veya programatik olarak değiştirmezseniz, aynı değeri döndüreceklerini eklemek istiyorum. Bkz http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowcount.aspx.

+0

bu formun bütün mesele kullanıcı girişi değişken miktarda kabul etmek (bir şey değil OP'den öğrenebilirdiniz, bu yüzden 'AllowUsersToAddRow = false' gerçekten – whytheq

13

RowCount, DataGridView'de görüntülenen satır sayısını alır veya ayarlar.

Rows.Count

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

aşağıda not edin .. satır sayısını Şu beyan

+1

+1 kısa ve noktaya kadar bir olasılık değil – whytheq

1

dönüş aynı sonucu vardır ama RowCount DataGridView görüntülenen satır sayısı sınırlıdır döndürür AllowUserToAddRows doğruysa DataGridView.RowCount Property

, bu'a RowCount ayarlayamıyordurumda, yeni kayıtların satırı dışındaki tüm satırlarını kaldırmak için DataGridViewRowCollection.Clear yöntemini çağırın. Clear'i Arama, bu durumda RowCount'u 1 olarak ayarlamak için ile aynı sonuca sahiptir, ancak çok daha hızlıdır. RowCount şimdiki değerinden daha az bir değere ayarlanır

Eğer satırlar Satırlar koleksiyonun ucundan kaldırılacaktır. RowCount geçerli değerden daha büyük bir değere ayarlanırsa, Satırlar koleksiyonunun sonuna satırlar eklenecektir. Ek satırlar, RowTemplate özelliğinde belirtilen satıra dayanır.

Eğer doğruysa, varsayılan boş satır dikkate alınır. IBindingList interface'u uygular. Ref: Bu özellik ve veri kaynağının IBindingList.AllowNew özelliği hem gerçek olarak belirlendiyse DataGridView - what does AllowUserToAddRows do? DataGridView verilere bağlı ise

, kullanıcı Satırlar eklemek için izin verilir.

1

AllowUserToAddRows doğruysa, en az bir satır her zaman yeni kayıt için kılavuzda bulunur. Satır nesnesinde IsNewRow özelliği için bu satırı denetlemeyi dışlamak için.Eğer montaj System.Windows.Forms.DataGridView koda olursa

1

, göreceksiniz:

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

Yani, RowCount döner Rows.Count