Общее количество ячеек DataGridView - PullRequest
1 голос
/ 13 февраля 2012

Мне нужно получить общее количество ячеек, которые присутствуют в сетке данных.Затем это используется, чтобы определить, хочу ли я включить текст заголовка столбца при копировании / вставке данных, я хочу, чтобы это отображалось, только если выбраны все записи.

Я использую следующий код для получения общего числа ячеек, но есть ли лучший способ получить это значение?

var totalCellCount = DataGridView2.ColumnCount * DataGridView2.RowCount;

Я не смог найти свойство, содержащее счетчикиз всех клеток, может быть, я скучаю по нему.Есть ли лучший способ получить количество ячеек?

У моего datagridview ClipboardCopyMode установлено значение EnableWithAutoHeaderText, но я хочу установить его на EnableAlwaysIncludeHeaderText, когда они выбирают все строки / столбцы всетка.Поэтому я использую общее количество ячеек в коде ниже:

private void DataGridView_KeyPress(object sender, KeyPressEventArgs e)
{
     if (m_RecordCount == 0)
     return;

      var totalCellCount = DataGridView2.ColumnCount * DataGridView2.RowCount;

      if (DataGridView2.SelectedCells.Count == totalCellCount)
      {
          if (e.KeyChar == (char)3)
          {
            DataGridView2.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText;
            var clipboardContent = this.DataGridView2.GetClipboardContent();

            if (clipboardContent != null)
            {
                Clipboard.SetText(clipboardContent.GetText(TextDataFormat.Text));
            }
            e.Handled = true;
           }
       }
   }  

1 Ответ

4 голосов
/ 13 февраля 2012

Свойство DataGrid.Items возвращает DataGridItemCollection, представляющее DataGridItems в DataGrid.

Каждый DataGridItem представляет одну строку в отображаемой таблице. Кроме того, DataGridItem предоставляет свойство Cells, которое представляет номер no. ячеек таблицы (другими словами, столбцы) в представленной таблице. Отсюда, если вам нужны какие-либо другие пользовательские сценарии, вам нужно будет либо добавить их к исходному Вопросу, либо написать решение

var rowCount = DataGridView2.Items.Count; //Number of Items...i.e. Rows;

// Get the no. of columns in the first row.
var colCount = DataGridView2.Items[0].Cells.Count;

если вы хотите общее количество строк, попробуйте

  1. Если вы хотите получить общее количество элементов и вам нужно реальное общее количество, например, если у вас есть несколько страниц ... Если это так, вам не следует пытаться найти эту информацию из GridView, а вместо этого смотреть на базовый источник данных, который вы привязать ваш GridView.

Пример ----

 List<SomeObject> lis = GetYourData();
 DataGrid.DataSource = list;
 DataGrid.DataBind();

 // if you want to get the count for a specific page
 int currentPage = 2;
 int countForPage2 = (list.Count > currentPage * totalItemsPerPage)) ?
     totalItemsPerPage : list.Count - ((currentPage - 1) * totalItemsPerPage);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...