Je suis nouveau dans la programmation et le langage C #. Je suis coincé, aide s'il vous plaît. J'ai donc écrit ce code (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
}
}
}
Et donc j'obtiens l'erreur suivante:
L'opérateur '==' ne peut pas être appliqué aux opérandes de type 'object' et 'bool'.
Utilisez Convert.ToBoolean()
pour vérifier si dataGridView checkBox est coché.
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
}
}
}
Toutes les réponses ici sont sujettes à l'erreur,
Donc, pour clarifier les choses pour les personnes qui tombent sur cette question,
Le meilleur moyen de réaliser ce que veut le PO consiste à utiliser le code suivant:
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!
}
}
}
La valeur retourne un type d'objet et ne peut être comparée à une valeur booléenne. Vous pouvez utiliser la valeur bool
if ((bool)row.Cells[1].Value == true)
{
// what I want to do
}
if (Convert.ToBoolean(row.Cells[1].EditedFormattedValue))
{
//Is Checked
}
Une légère modification devrait fonctionner
if (row.Cells[1].Value == (row.Cells[1].Value=true))
{
// what I want to do
}