8

内にあるユーザーで「チェック」されたユーザーをアクティブ化/非アクティブ化しようとしているDataGridViewと呼ばれる作業に取り組んでいます。ListingGridDataGridViewCheckBoxCellDataGridViewCheckBoxColumn

これは私がそれをやろうとしている方法です:

foreach (DataGridViewRow roow in ListingGrid.Rows)
{
    if ((bool)roow.Cells[0].Value == true)
    {
        if (ListingGrid[3, roow.Index].Value.ToString() == "True")
        {
            aStudent = new Student();
            aStudent.UserName = ListingGrid.Rows[roow.Index].Cells[2].Value.ToString();
            aStudent.State = true;
            studentList.Add(aStudent);

        }
    }
}

私が知る限り、a をチェックするDataGridViewCheckBoxCellと、セルの値はtrue正しいですか? しかし、値をブール値に変換して比較することはできず、無効なキャスト例外がスローされます。

4

4 に答える 4

20

試す:

DataGridViewCheckBoxCell chkchecking = roow.Cells[0] as DataGridViewCheckBoxCell;

    if (Convert.ToBoolean(chkchecking.Value) == true)
{
}

また

DataGridViewCheckBoxCell chkchecking = roow.Cells[0] as DataGridViewCheckBoxCell;

        if ((bool)chkchecking.Value == true)
    {
    }
于 2012-11-29T18:58:20.623 に答える
0

普段はこうやってる bool value = (short)chkchecking.Value == 1

于 2018-05-25T10:51:28.453 に答える
0

== true役に立たないと思うので、セルがDBNullでないかどうかを確認する必要があります。

if (chkchecking.Value != DBNull.Value)
于 2017-08-01T17:12:35.953 に答える