public override object ParseFormattedValue(object formattedValue, DataGridViewCellStyle cellStyle, System.ComponentModel.TypeConverter formattedValueTypeConverter, System.ComponentModel.TypeConverter valueTypeConverter) { object aresult = null; ObjectInspectorCellType celltype = (ObjectInspectorCellType)GetColumnValue("TYPEENUM"); switch (celltype) { case ObjectInspectorCellType.DropDownList: case ObjectInspectorCellType.DropDown: if (formattedValue.ToString().Length == 0) { aresult = DBNull.Value; } else { Strings list = (Strings)GetColumnValue("VALUELIST"); int index = list.IndexOf(formattedValue.ToString()); if (index < 0) { index = 0; } aresult = index; } break; case ObjectInspectorCellType.Text: case ObjectInspectorCellType.Expression: aresult = formattedValue.ToString(); break; case ObjectInspectorCellType.Color: if (formattedValue.ToString().Length == 0) { aresult = DBNull.Value; } else { aresult = GraphicUtils.IntegerFromColor((Color)formattedValue); } break; case ObjectInspectorCellType.Image: if (formattedValue is Variant) { Variant imvar = (Variant)formattedValue; if (imvar.VarType == VariantType.Binary) { System.IO.MemoryStream nstream = ((Variant)formattedValue).GetStream(); aresult = StringUtil.GetSizeAsString(nstream.Length); } else { aresult = formattedValue; } } else { aresult = ""; } break; case ObjectInspectorCellType.FontName: aresult = formattedValue.ToString(); break; case ObjectInspectorCellType.FontStyle: if (formattedValue.ToString().Length == 0) { aresult = DBNull.Value; } else { aresult = GraphicUtils.IntegerFromStringFontStyle(formattedValue.ToString()); } break; case ObjectInspectorCellType.Decimal: if (formattedValue.ToString().Length == 0) { aresult = DBNull.Value; } else { aresult = System.Convert.ToDecimal(formattedValue); } break; case ObjectInspectorCellType.Boolean: if (formattedValue.ToString().Length == 0) { aresult = DBNull.Value; } else { aresult = System.Convert.ToBoolean(formattedValue); } break; case ObjectInspectorCellType.Integer: if (formattedValue.ToString().Length == 0) { aresult = DBNull.Value; } else { aresult = (int)Math.Round(System.Convert.ToDecimal(formattedValue)); } break; } if (aresult == null) { aresult = base.ParseFormattedValue(formattedValue, cellStyle, formattedValueTypeConverter, valueTypeConverter); } return(aresult); }