(C#) DataGridView:如何获取包含单元格和行的选定计数?
(C#) DataGridView: How to get Selected Count with cells AND rows?
所以我有这个DataGridView
还有这段代码:
if(dataGridView1.SelectedRows.Count > 1)
{
MessageBox.Show("Error: More than one value selected");
return false;
}
如果我有 2 个完全选择的行,它正确地计数为 2。
但我想检查是否选择了来自 2 个不同行或更多行的 任何单元格 。
换句话说:
在我的照片中 我目前选择的是 returning 1,但我希望它是 return 2.
谢谢。
修复后编辑:工作代码:
if(dataGridView1.SelectedCells.Cast<DataGridViewCell>().Select(c => c.RowIndex).Distinct().Count() > 1)
{
MessageBox.Show("Error: More than one value selected");
return false;
}
如果您有一个相当标准的设置,其中每一列都绑定到支持数据对象的一个 属性,并且每一行代表一个对象,则以下应该有效:
dataGridView1.SelectedCells.Select(c => c.Item).Distinct().Count()
这将 return 不同单元格绑定的项目数。由于每个项目都有一行与其绑定,因此它将 return 至少包含一个选定单元格的每一行的计数。
获取包含选定单元格的行数:
int count = dataGridView1.SelectedCells.Cast<DataGridViewCell>()
.Select(c => c.RowIndex).Distinct().Count();
检查是否选择了多行:
var selectedCells = dataGridView1.SelectedCells;
bool check = selectedCells.Count > 0
&& selectedCells.Cast<DataGridViewCell>().Any(c => c.RowIndex != selectedCells[0].RowIndex);
所以我有这个DataGridView
还有这段代码:
if(dataGridView1.SelectedRows.Count > 1)
{
MessageBox.Show("Error: More than one value selected");
return false;
}
如果我有 2 个完全选择的行,它正确地计数为 2。 但我想检查是否选择了来自 2 个不同行或更多行的 任何单元格 。
换句话说: 在我的照片中 我目前选择的是 returning 1,但我希望它是 return 2.
谢谢。
修复后编辑:工作代码:
if(dataGridView1.SelectedCells.Cast<DataGridViewCell>().Select(c => c.RowIndex).Distinct().Count() > 1)
{
MessageBox.Show("Error: More than one value selected");
return false;
}
如果您有一个相当标准的设置,其中每一列都绑定到支持数据对象的一个 属性,并且每一行代表一个对象,则以下应该有效:
dataGridView1.SelectedCells.Select(c => c.Item).Distinct().Count()
这将 return 不同单元格绑定的项目数。由于每个项目都有一行与其绑定,因此它将 return 至少包含一个选定单元格的每一行的计数。
获取包含选定单元格的行数:
int count = dataGridView1.SelectedCells.Cast<DataGridViewCell>()
.Select(c => c.RowIndex).Distinct().Count();
检查是否选择了多行:
var selectedCells = dataGridView1.SelectedCells;
bool check = selectedCells.Count > 0
&& selectedCells.Cast<DataGridViewCell>().Any(c => c.RowIndex != selectedCells[0].RowIndex);