如果我有DataGridView uxChargeBackDataGridView
。
以下语法不同但实际上是否相同?:
int numRows = uxChargeBackDataGridView.Rows.Count;
int numRowCount = uxChargeBackDataGridView.RowCount;
如果uxChargeBackDataGridView
为空,则两者均等于1;因此逻辑上认为如果其中任何一个等于1,我可以假设用户没有输入任何数据吗?
WinFroms有一个按钮RUN
- 我可以使用上面的测试来决定是否启用此按钮,即仅在number of rows is >1
时启用按钮?
答案 0 :(得分:15)
RowCount获取或设置显示的行数 的DataGridView。
Rows.Count返回行数
答案 1 :(得分:10)
两种说法都是一样的。但是,要记住的一件事是,只有AllowUsersToAddRow
属性设置为true时,“空”datagridview才有1条记录。否则,行计数将为0。
编辑: 我想补充一点,代替MMK的答案,如果你不手动或以编程方式更改RowCount,它们将返回相同的值。见http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowcount.aspx。
答案 2 :(得分:3)
如果您对程序集System.Windows.Forms.DataGridView
进行反编译,则会看到:
public int RowCount
{
get
{
return this.Rows.Count;
}
因此,RowCount
会返回Rows.Count
答案 3 :(得分:1)
以下语句返回相同的结果,但RowCount限制了DataGridView中显示的行数。
int numRows = uxChargeBackDataGridView.Rows.Count;
int numRowCount = uxChargeBackDataGridView.RowCount;
查看DataGridView.RowCount Property
上的注释如果AllowUserToAddRows为true,则无法将RowCount设置为0.在此 case,调用DataGridViewRowCollection.Clear方法删除所有 除了新记录的行之外的行。 Calling Clear具有相同的结果 在这种情况下,将RowCount设置为1,但要快得多。
如果RowCount
设置为小于当前值的值,则行将从Rows集合的末尾删除。如果RowCount设置为大于当前值的值,则行将添加到Rows集合的末尾。其他行基于RowTemplate属性中指定的行。
如果为true,则考虑默认的空行。它实现了IBindingList interface。参考:DataGridView - what does AllowUserToAddRows do?
如果DataGridView绑定到数据,则允许用户添加行 如果此属性和数据源IBindingList.AllowNew 属性设置为true。
答案 4 :(得分:1)
如果AllowUserToAddRows为true,则新记录的网格中将始终存在至少一行。要排除此行,请检查行对象上的属性IsNewRow。