DataGridView RowCount vs Rows.Compter

si j'ai un DataGridView uxChargeBackDataGridView.

les éléments suivants sont-ils syntaxiquement différents mais effectivement identiques?:

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

Si uxChargeBackDataGridView est vide alors les deux sont égaux à 1; est-il donc logique que si l'un de ces deux est égal à 1, je puisse supposer que l'utilisateur n'a pas entré de données?

le WinFroms a un bouton RUN - puis-je utiliser le test ci-dessus pour décider si ce bouton est activé ou pas je.e uniquement activer le bouton lorsque l' number of rows is >1 ?

12
demandé sur whytheq 2012-07-23 16:43:47

5 réponses

Les deux énoncés sont les mêmes. Cependant, une chose à se rappeler est qu'un datagridview "vide" a 1 Enregistrement seulement si le AllowUsersToAddRow la propriété est définie à true. Dans le cas contraire, le nombre de rangs sera nul.

modifier: Je voudrais ajouter, au lieu de la réponse DE MMK que si vous ne changez pas le RowCount, que ce soit manuellement ou programmatiquement, ils retourneront la même valeur. Voir http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowcount.aspx.

10
répondu Holger Brandt 2012-07-23 12:59:46

RowCount obtient ou définit le nombre de lignes DataGridView.

Lignes.Count renvoie le nombre de lignes

14
répondu MMK 2012-07-23 12:50:32

si vous décompilez l'assemblage System.Windows.Forms.DataGridView, vous allez voir:

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

Donc, RowCount retourne Rows.Count

2
répondu Computer User 2015-12-23 12:46:39

les instructions suivantes sont retournées avec le même résultat mais RowCount limite le nombre de lignes affichées dans DataGridView..

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

cochez la note ci-dessous sur le DataGridView.Nombre De Lignes De La Propriété

si AllowUserToAddRows est true, vous ne pouvez pas définir RowCount à 0. Dans ce case, appelle la DataGridViewRowCollection.Méthode claire pour enlever tout lignes sauf la ligne pour les nouveaux enregistrements. D'appel Clair a le même résultat comme mettre RowCount à 1 dans ce cas, mais est beaucoup plus rapide.

Si RowCount est défini à une valeur inférieure à la valeur courante, les lignes seront retirées de la fin de la collection de lignes. Si RowCount est défini à une valeur supérieure à la valeur courante, des lignes seront ajoutées à la fin de la collection de lignes. Les lignes supplémentaires sont basées sur la ligne spécifiée dans la propriété RowTemplate.

si elle est vraie, alors une ligne vide par défaut est considérée. Il Implémente IBindingList l'interface. Ref:DataGridView - Que fait Allowuser Toaddrows?

si DataGridView est lié aux données, l'utilisateur est autorisé à ajouter des lignes si les deux cette propriété et de la source de données IBindingList.AllowNew les propriétés sont définies à true.

1
répondu Niranjan Kala 2017-05-23 12:16:53

Si AllowUserToAddRows est vrai au moins une ligne sera toujours présent dans la grille pour le nouvel enregistrement. Pour exclure cette ligne, vérifiez la propriété IsNewRow sur l'objet row.

1
répondu I-A-N 2015-08-10 10:52:08