计算 dataGridView 中选定行的值
Count values from selected rows from dataGridView
我正在尝试创建一个 dataGridView,它有 2 列,第 1 列包含名称,第 2 列包含数字,工作正常。
我现在想要允许用户使用键盘或鼠标 select 单行或多行,这应该会根据 selected 行自动对数字列求和。
到目前为止,我有以下内容:
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
最终会在表格的标签中显示总数。
但这似乎是我想要实现的目标的错误方法。有什么建议吗?
如果您想要查找所选 行 的特定列的总值:
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
事件即可。这几乎就是 "neatest" 的方法。
我正在尝试创建一个 dataGridView,它有 2 列,第 1 列包含名称,第 2 列包含数字,工作正常。
我现在想要允许用户使用键盘或鼠标 select 单行或多行,这应该会根据 selected 行自动对数字列求和。
到目前为止,我有以下内容:
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
最终会在表格的标签中显示总数。
但这似乎是我想要实现的目标的错误方法。有什么建议吗?
如果您想要查找所选 行 的特定列的总值:
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
事件即可。这几乎就是 "neatest" 的方法。