DataGridView的总细胞计数

时间:2012-02-13 15:56:26

标签: c# winforms datagridview

我需要获取datagridview中存在的单元格总数。然后,这用于确定在复制/粘贴数据时是否要包括列标题文本,我只希望在选择所有记录时显示。

我使用以下代码来获取单元格的总数,但有更好的方法来获取此值吗?

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 个答案:

答案 0 :(得分:4)

DataGrid.Items属性返回表示DataGrid中DataGridItemCollection的{​​{1}}。

每个DataGridItems代表渲染表中的单行。此外,DataGridItem公开了代表否的DataGridItem属性。在渲染表中的tablecells(换句话说,列)。从这里,如果您需要任何其他自定义方案,则必须将其添加到原始问题或编写解决方案

Cells

如果你想要总行数也试试

  1. 如果你想得到总项目,你想要一个真正的总数,例如,如果你有多个页面..如果是这样你不应该试图从GridView中找到那些信息,而是查看你的底层数据源绑定你的GridView。
  2. 示例----

    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;