从dataGridView计算选定行的值

时间:2015-03-18 12:29:22

标签: c# .net visual-studio-2013 .net-3.5

我正在尝试创建一个dataGridView,它有2列,第1列包含名称,第2列包含数字,这很正常。

我现在想让用户使用键盘或鼠标选择一行或多行,这些行应根据所选行自动累计数字列。

到目前为止,我有以下内容:

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        if (dataGridView1.SelectedCells.Count > 0)
        {
            int selectedrowindex = dataGridView1.SelectedCells[0].RowIndex;

            DataGridViewRow selectedRow = dataGridView1.Rows[selectedrowindex];

            string a = Convert.ToString(selectedRow.Cells[0].Value);
        }
    }

string a最终会在表单上的标签中显示总数。

但这似乎是做我想要实现的目标的错误方法。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

如果您想要找到所选'的特定列的总和。值:

int total = dgv.SelectedRows.Cast<DataGridViewRow>().Sum(
    row => (int) row.Cells[colSomeNumber.Name].Value);

如果您想要找到所选的单元格总数。值:

int total = dgv.SelectedCells.Cast<DataGridViewCell>().Sum(cell => (int) cell.Value);

如果您想要找到所选的单元格总数。只有一些列的值,这样做:

int total = dgv.SelectedCells.Cast<DataGridViewCell>().Where(
    c => c.OwningColumn == colSomeNumber).Sum(cell => (int) cell.Value);

其中colSomeNumber实际列。

只需将其放入dgv_SelectionChanged事件就可以了。这几乎是&#34;最好的&#34;这样做的方法。