Since you have to use Graphics.MeasureString to compute the reqired width, it makes more sense to use DrawCell to handle this work since the Graphics object is already available in it. If you use PrepareViewStyleInfo, then you would have to call CreateGraphics to get a Graphics object. In DrawCell, you can test the text to be drawn and if it will not fit, replace it with asterisks. here is a snippest that does this in column 2.
private void gridDataBoundGrid1_DrawCell(object sender, GridDrawCellEventArgs e)
{
if(e.ColIndex == 2 && e.RowIndex > 0)
{
SizeF sz = e.Graphics.MeasureString(e.Style.Text, e.Style.GdipFont);
if(sz.Width > e.Bounds.Width - e.Style.TextMargins.Left - e.Style.TextMargins.Right)
{
e.Style.Text = new string('*', e.Style.Text.Length);
}
}
}