I am using a datagridview and I want to display do conditional formatting means when I get for a cell M then I want to display Married.I try this b
After a little work this code work for me very fine . I am posting it may be any other can use the code
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 ....
You're trying to use the .CellFormatting event with for loop statement which is not the proper way.
The CellFormatting event occurs every time each cell is painted, so you should avoid lengthy processing when handling this event. This event also occurs when the cell FormattedValue is retrieved or its GetFormattedValue method is called.
So every time the cell is painted, the for loop is running.
Try this:
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)
{
}
}