Многие ответы здесь имеют ссылку на Rows.Count
. Обычно это не представляет проблемы, и в большинстве случаев было бы излишним делать то, что я собираюсь предложить.
Но по причинам, упомянутым в этом документе , может быть не очень хорошей идеей вызывать Rows.Count
, если DataGridView
часто содержит много данных (ячеек >~ 5000
в профилировании памяти я сделал чтобы подтвердить эту статью некоторое время назад).
Избегайте использования свойства Count
System.Windows.Forms.DataGridViewSelectedCellCollection
для определения
количество выделенных клеток. Вместо этого используйте
DataGridView.GetCellCount
метод и передать в
DataGridViewElementStates.Selected
значение. Точно так же используйте
DataGridViewRowCollection.GetRowCount
и
DataGridViewColumnCollection.GetColumnCount
методы определения
количество выбранных элементов, а не доступ к выбранной строке
и коллекции столбцов.
В таких случаях вы можете использовать
myDataGridView1.Rows.GetRowCount(.) == 0
Если вы не имеете дело с быстро меняющимися данными или огромным количеством данных (или, что еще хуже, с огромным количеством быстро меняющихся данных), просто используйте Rows.Count - это не повредит.