我在编码时遇到问题,如何检查它是否可以使用字符值而不是整数?如果条件值是整数,但是单元格值包含“ 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在编辑器中,仅在运行时显示。这是一个未绑定的列
答案 0 :(得分:0)
您的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
}