If I have a DataGridView uxChargeBackDataGridView
.
Are the following syntactically different but effectively the same?:
int numRows = uxChargeBackDataGridView.Rows.Count;
int numRowCount = uxChargeBackDataGridView.RowCount;
If uxChargeBackDataGridView
is empty then both are equal to 1; does it therefore logically stand that if either of these is equal to 1 I can assume the user has not input any data?
My WinForms application has a button named RUN
- could I use the above test to decide if this button is enabled or not i.e only enable the button when the number of rows is > 1
?
Use Property of RowCount to get the number of rows in a Data Grid View.
From a software perspective, row count is correct. As a system variable (see transact sql @@rowcount or set rowcount), the phrase "row count" is commonly understood to mean the count of the rows in the result set. This is convention.
Text = DataGridView1. RowCount it display the number of row populated with some data.
RowCount gets or sets the number of rows displayed in the DataGridView.
Rows.Count returns the number of rows
Both statements are the same. However, one thing to remember is that an "empty" datagridview has 1 record only if the AllowUsersToAddRow
property is set to true. Otherwise, the row count will be 0.
EDIT: I would like to add, in lieu of MMK's answer that if you do not change the RowCount, either manually or programatically, they will return the same value. See http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowcount.aspx.
If you decompile the assembly System.Windows.Forms.DataGridView
, you will see:
public int RowCount
{
get
{
return this.Rows.Count;
}
So, RowCount
returns Rows.Count
Following statement are return same result but RowCount limits the number of rows displayed in the DataGridView..
int numRows = uxChargeBackDataGridView.Rows.Count;
int numRowCount = uxChargeBackDataGridView.RowCount;
Check the note below on the DataGridView.RowCount Property
If AllowUserToAddRows is true, you cannot set RowCount to 0. In this case, call the DataGridViewRowCollection.Clear method to remove all rows except the row for new records. Calling Clear has the same result as setting RowCount to 1 in this case, but is much faster.
If RowCount
is set to a value less than the current value, rows will be removed from the end of the Rows collection. If RowCount is set to a value greater than the current value, rows will be added to the end of the Rows collection. The additional rows are based on the row specified in the RowTemplate property.
If it is true then a default empty row is considered. It Implements IBindingList interface. Ref: DataGridView - what does AllowUserToAddRows do?
If the DataGridView is bound to data, the user is allowed to add rows if both this property and the data source's IBindingList.AllowNew property are set to true.
If AllowUserToAddRows is true at least one row will always be present in the grid for the new record. To exclude this row check for property IsNewRow on the row object.
IsNewRow probably can solve mystery. It can give the meaning of 1. If IsNewRow is true created but there is nothing in it and not registered. If IsNewRow false you have got 1 row filled full or partially. I hope this is right for you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With