2012-07-23 16 views
12

Se si dispone di un DataGridView uxChargeBackDataGridView.DataGridView RowCount vs Rows.Count

sono le seguenti sintatticamente differente ma efficace la stessa ?:

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

Se uxChargeBackDataGridView è vuota, allora entrambi sono uguali a 1; quindi, logicamente, se uno di questi è uguale a 1, posso supporre che l'utente non abbia inserito alcun dato?

Il WinFroms ha un pulsante RUN - Posso utilizzare il test precedente per decidere se questo pulsante è abilitato o meno abilitare il pulsante solo quando lo number of rows is >1?

risposta

11

Entrambe le dichiarazioni sono le stesse. Tuttavia, una cosa da ricordare è che un datagridview "vuoto" ha 1 record solo se la proprietà AllowUsersToAddRow è impostata su true. In caso contrario, il conteggio delle righe sarà 0.

MODIFICA: Vorrei aggiungere, invece della risposta di MMK, che se non si modifica il RowCount, manualmente o programmaticamente, verrà restituito lo stesso valore. Vedi http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowcount.aspx.

+0

il punto centrale di questo modulo è quello di accettare una quantità variabile di input da parte dell'utente (non qualcosa potresti sapere dall'OP) quindi sospetto che 'AllowUsersToAddRow = false' non sia realmente una possibilità – whytheq

13

RowCount ottiene o imposta il numero di righe visualizzate nel DataGridView .

Rows.Count restituisce il numero di righe

+1

+1 breve e al punto – whytheq

1

Dopo economico sono di ritorno stesso risultato, ma RowCount limita il numero di righe visualizzate nel DataGridView ..

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

Controllare la nota in basso a DataGridView.RowCount Property

Se AllowUserToAddRows è vero, non è possibile impostare RowCount a 0. In questo caso, chiamare il metodo DataGridViewRowCollection.Clear per rimuovere tutte le righe tranne la riga per i nuovi record. Chiamare Clear ha lo stesso risultato impostando RowCount su 1 in questo caso, ma è molto più veloce.

Se RowCount è impostata su un valore inferiore al valore corrente, righe verranno rimossi dalla fine della raccolta righe. Se RowCount è impostato su un valore maggiore del valore corrente, le righe verranno aggiunte alla fine della raccolta di righe. Le righe aggiuntive si basano sulla riga specificata nella proprietà RowTemplate.

Se è vero, viene considerata una riga vuota predefinita. Implementa IBindingList interface. Rif: DataGridView - what does AllowUserToAddRows do?

Se il DataGridView è associato ai dati, l'utente è autorizzato ad aggiungere righe se sia questa proprietà e la proprietà della sorgente di dati IBindingList.AllowNew sono impostate su true.

1

Se AllowUserToAddRows è true almeno una riga sarà sempre presente nella griglia per il nuovo record. Per escludere questa riga, verificare la proprietà IsNewRow sull'oggetto riga.

1

Se decompilare il gruppo System.Windows.Forms.DataGridView, si vedrà:

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

Quindi, RowCount rendimenti Rows.Count