سلام دوستان- راهی برای نمایش اعداد فارسی در دیتاگرید هست؟ با تنظیم فونت فارسی درست نشد. ممنون از همه
سلام دوستان- راهی برای نمایش اعداد فارسی در دیتاگرید هست؟ با تنظیم فونت فارسی درست نشد. ممنون از همه
private static StringFormat GetPersianDigitStringFormat()
{
var format = new StringFormat(StringFormat.GenericDefault);
format.SetDigitSubstitution(1065, StringDigitSubstitute.National);
return format;
}
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if ((e.RowIndex >= 0) && (e.ColumnIndex == 0))
{
e.Handled = true;
e.Paint(e.ClipBounds, e.PaintParts & (DataGridViewPaintParts.All ^ DataGridViewPaintParts.ContentForeground));
var format = GetPersianDigitStringFormat();
var selected = (e.State & DataGridViewElementStates.Selected) == DataGridViewElementStates.Selected;
using (var brush = new SolidBrush(selected ? e.CellStyle.SelectionForeColor : e.CellStyle.ForeColor))
{
e.Graphics.DrawString(e.FormattedValue.ToString(), e.CellStyle.Font, brush, e.CellBounds, format);
}
}
}
سلام و تشکر- این کد هم جواب نداد.
نه، چون Script فونت این وسط بی تاثیر ئه، چه Western و چه Arabic و چه Turkish یا Baltic صرفا Character Set فونت تغییر می کنه که تاثیرش فقط و فقط روی متن های ASCII (سیستم های non-Unicode) است و در ظاهر رشته های Unicode که در محیط NET. و نرم افزار های مدرن ویندوز استفاده میشه تاثیری نداره.
انتخاب رقم بر اساس اون LCID ئه 1065 انجام میشه که با SetDigitSubstitution اعمال میشه، مستقل از اینکه در Font چه مقدار Font.GdiCharSet ای ثبت شده.
حتی اگر از فونت ای مثل Impact استفاده بشه که اون Unicode Range و ارقام فارسی عربی رو نداره، با استفاده از فونت پیشفرض سیستم که اون ارقام فارسی رو داره جایگزینی Glyph صورت می گیره.
از فونت IRANYekan(FaNum) برای دیتاگرید استفاده کنید 100% اعداد رو فارسی نشون میده
از اینجا فونت رو Arabic انتخاب کردم DataGridViewCellStyle ولی فارسی نشد. فونت هایی که دوستان دیگر فرمودند ارور میده
truetype
فونت شناخته شد ولی همچنان اعداد لاتین نمایش داده می شوند.
ممنون درست شد. مشکل از تنظیمات ویندوز بود. خیلی لطف کردی.