2012-07-23 17 views
12

Si tengo un DataGridView uxChargeBackDataGridView.DataGridView RowCount vs Rows.Count

son los siguientes sintácticamente diferente pero efectivamente el mismo ?:

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

Si uxChargeBackDataGridView está vacía, entonces ambos son iguales a 1; ¿Por lo tanto, lógicamente se sostiene que si cualquiera de estos es igual a 1, puedo suponer que el usuario no ha ingresado ningún dato?

WinFroms tiene un botón RUN - ¿Podría utilizar la prueba anterior para decidir si este botón está habilitado o no, es decir, solo activar el botón cuando el number of rows is >1?

Respuesta

11

Ambas declaraciones son las mismas. Sin embargo, una cosa para recordar es que una vista de cuadrícula de datos "vacía" tiene 1 registro solo si la propiedad AllowUsersToAddRow está establecida en verdadero. De lo contrario, el recuento de filas será 0.

EDIT: Me gustaría agregar, en lugar de la respuesta de MMK que si no cambia el RowCount, ya sea manual o programáticamente, devolverá el mismo valor. Ver http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowcount.aspx.

+0

el punto entero de esta forma es aceptar una cantidad variable de entrada del usuario (no es algo se puede saber por el OP) así que sospecho que 'AllowUsersToAddRow = false' no es realmente una posibilidad – whytheq

13

RowCount obtiene o establece el número de filas que se muestran en DataGridView.

Rows.Count devuelve el número de filas

+1

+1 corto y al grano – whytheq

1

Tras la declaración son mismo resultado, pero el retorno RowCount limita el número de filas que se muestran en el DataGridView ..

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

Compruebe la siguiente nota sobre la DataGridView.RowCount Property

Si AllowUserToAddRows es cierto, no se puede establecer RowCount a 0. En este caso, llame al método DataGridViewRowCollection.Clear para eliminar todas las filas excepto la fila para nuevos registros. Llamar a Clear tiene el mismo resultado que establecer RowCount a 1 en este caso, pero es mucho más rápido.

Si RowCount se establece en un valor menor que el valor actual, las filas serán eliminadas de la final de la colección filas. Si RowCount se establece en un valor mayor que el valor actual, las filas se agregarán al final de la colección Filas. Las filas adicionales se basan en la fila especificada en la propiedad RowTemplate.

Si es verdadero, se considera una fila vacía predeterminada. Implementa IBindingList interface. Ref: DataGridView - what does AllowUserToAddRows do?

Si el DataGridView está enlazado a datos, el usuario tiene permiso para agregar filas tanto si esta propiedad y IBindingList.AllowNew la propiedad de la fuente de datos se establecen en true.

1

Si AllowUserToAddRows es verdadero, al menos una fila siempre estará presente en la cuadrícula para el nuevo registro. Para excluir esta fila, compruebe la propiedad IsNewRow en el objeto de la fila.

1

Si descompilar el montaje System.Windows.Forms.DataGridView, verá:

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

Así, RowCount vuelve Rows.Count