我正在使用datagridview,我想显示条件格式化意味着当我得到一个单元格M
然后我想显示Married
。我试试这个但不成功。
这是我的代码:
private void masterDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
try
{
for (int i = 0; i <= masterDataGridView.Rows.Count - 1; i++)
{
String Value = masterDataGridView.Rows[i].Cells[17].Value.ToString();
if (Value == "M")
{
e.Value = "Male";
}
}
}
catch (Exception ex)
{
}
}
答案 0 :(得分:1)
您尝试将.CellFormatting
事件与for loop statement
一起使用,这不是正确的方法。
每次绘制每个单元格时都会发生CellFormatting事件 处理此事件时应避免冗长处理。这个 当检索到FormattedValue单元格或其时,也会发生事件 调用GetFormattedValue方法。
因此,每次绘制单元格时,for loop
都在运行。
试试这个:
private void masterDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
try
{
if (e.ColumnIndex >= 17 && e.ColumnIndex <= 24)
{
if (e.Value == "M")
e.Value = "Married";
else
e.Value = "Not Married";
}
}
catch (Exception ex)
{
}
}
答案 1 :(得分:1)
经过一番努力,这段代码对我很有用。我发布它可能是任何其他可以使用代码
private void masterDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (masterDataGridView.Columns[e.ColumnIndex].Name.Equals("Gender"))
{
string _val = e.Value as string;
if (_val == null)
return;
switch (_val)
{
case "M" :
e.Value = "Male";
break;
case "F":
e.Value = "Female";
break;
}
}
}
Chearss ....