public Form1()
{
InitializeComponent();
var dataSource = new OrderInfoCollection().OrdersListDetails;
sfDataGrid1.DataSource = dataSource;
(this.sfDataGrid1.Columns["UnitPrice"] as GridNumericColumn).NumberFormatInfo = new System.Globalization.NumberFormatInfo() { NumberDecimalDigits = 4 };
this.sfDataGrid1.CellRenderers["Numeric"] = new CustomNumericCellRenderer();
}
public class CustomNumericCellRenderer : GridNumericCellRenderer
{
protected override void OnRender(Graphics paint, Rectangle cellRect, string cellValue, CellStyleInfo style, DataColumnBase column, RowColumnIndex rowColumnIndex)
{
if (column.GridColumn.MappingName=="UnitPrice" && cellValue.Length > 5)
{
string modifiedValue = string.Empty;
var c = 0;
foreach (var character in cellValue)
{
if (c >= 5)
{
cellValue = modifiedValue;
break;
}
modifiedValue += character;
if (character != '.' && character != ',')
c++;
}
}
base.OnRender(paint, cellRect, cellValue, style, column, rowColumnIndex);
}
} |