C # если условие для значения ячейки символа в datagridview - PullRequest
0 голосов
/ 06 июля 2019

У меня проблема с кодированием: как я могу проверить, чтобы это работало со значением символа вместо целого числа?Код работает, если значение условия является целым числом, но значение ячейки содержит либо «I», либо «A».Я пробовал cellvalue.split, но выдает ошибку.

if (int.Parse(cellvalue.Value.ToString()) == 'A')
                    statcell.Value = Properties.Resources.icons8_login_rounded_filled_100;
                else
                    statcell.Value = Properties.Resources.icons8_folder_50;

Вот общий код:

        private void dg_vw_actve_doc_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 0 && !isInit)
            {
                var valueCell = dg_vw_actve_doc.Rows[e.RowIndex].Cells[e.ColumnIndex];
                var imgCell = dg_vw_actve_doc.Rows[e.RowIndex].Cells[e.ColumnIndex + 0 ]; 
                char firstCharacterInCell = valueCell.Value.ToString()[1];
                if (firstCharacterInCell == 'A')
                    imgCell.Value = Color.Green;
                else
                    imgCell.Value = Color.Red;
            }
        }

Моя imgCell переменная - это значение столбца, которое было добавленоиз datagridview с индексом столбца 0, а моя переменная valueCell имеет индекс столбца 1 и не добавляется из datagridview в редакторе и появляется только во время выполнения.Это несвязанный столбец

1 Ответ

0 голосов
/ 06 июля 2019

Ваш вызов int.Parse возвращает целое число, а не символ.

Вы можете получить первый элемент массива char строки.Это было бы полезно, если вам позже понадобится использовать этот символ:

// Check if there was no data
if (cellvalue.Value.ToString() != string.Empty)
{
    char firstCharacterInCell = cellvalue.Value.ToString()[0];
    if (firstCharacterInCell == 'A' || firstCharacterInCell == 'I')
    {
        // Your condition is matched
    }
}

Вы также можете проверить, начинается ли строка с 'I' или 'A'

string cellContent = cellvalue.Value.ToString();
if (cellContent.StartsWith("A") || cellContent.StartsWith("I"))
{
    // Your condition is matched
}
...