我是编程和C#语言的新手。我被卡住了,请帮忙。所以我编写了这段代码(c#Visual Studio 2012):
private void button2_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells[1].Value == true)
{
// what I want to do
}
}
}
所以我收到以下错误:
运算符'=='无法应用于'object'和'bool'类型的操作数。
答案 0 :(得分:31)
您应该使用Convert.ToBoolean()
检查是否已选中dataGridView复选框。
private void button2_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (Convert.ToBoolean(row.Cells[1].Value))
{
// what you want to do
}
}
}
答案 1 :(得分:4)
值返回一个对象类型,无法与布尔值进行比较。您可以将值强制转换为bool
if ((bool)row.Cells[1].Value == true)
{
// what I want to do
}
答案 2 :(得分:4)
这里的所有答案都容易出错,
所以要为那些偶然发现这个问题的人解决问题,
实现OP所需要的最佳方法是使用以下代码:
foreach (DataGridViewRow row in dataGridView1.Rows)
{
DataGridViewCheckBoxCell cell = row.Cells[0] as DataGridViewCheckBoxCell;
//We don't want a null exception!
if (cell.Value != null)
{
if (cell.Value == cell.TrueValue)
{
//It's checked!
}
}
}
答案 3 :(得分:0)
轻微修改应该有效
input
答案 4 :(得分:0)
if (Convert.ToBoolean(row.Cells[1].EditedFormattedValue))
{
//Is Checked
}
答案 5 :(得分:0)
上面的代码是错误的!
foreach (DataGridViewRow row in dataGridView1.Rows)
{
DataGridViewCheckBoxCell cell = row.Cells[0] as DataGridViewCheckBoxCell;
// Note: Can't check cell.value for null if Cell is null
// just check cell != null first
//We don't want a null exception!
if (cell.Value != null)
{
if (cell.Value == cell.TrueValue)
{
//It's checked!
}
}
}