نمایش اعداد فارسی در دیتاگرید
سلام دوستان- راهی برای نمایش اعداد فارسی در دیتاگرید هست؟ با تنظیم فونت فارسی درست نشد. ممنون از همه
نقل قول: نمایش اعداد فارسی در دیتاگرید
نقل قول:
نوشته شده توسط
ahmad1010
سلام دوستان- راهی برای نمایش اعداد فارسی در دیتاگرید هست؟ با تنظیم فونت فارسی درست نشد. ممنون از همه
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);
}
}
}
نقل قول: نمایش اعداد فارسی در دیتاگرید
سلام و تشکر- این کد هم جواب نداد.
نقل قول: نمایش اعداد فارسی در دیتاگرید
نقل قول:
نوشته شده توسط
the king
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);
}
}
}
فونتتون رو رو حالت arabic میزارید؟
نقل قول: نمایش اعداد فارسی در دیتاگرید
نقل قول:
نوشته شده توسط
رامین مرادی
فونتتون رو رو حالت arabic میزارید؟
نه، چون 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% اعداد رو فارسی نشون میده
نقل قول: نمایش اعداد فارسی در دیتاگرید
نقل قول:
نوشته شده توسط
ahmad1010
سلام دوستان- راهی برای نمایش اعداد فارسی در دیتاگرید هست؟ با تنظیم فونت فارسی درست نشد. ممنون از همه
من از فونت vazir fd استفاده میکنم تا حالا مشکلی نداشتم باهاش. یکان هم خوبه
نقل قول: نمایش اعداد فارسی در دیتاگرید
از اینجا فونت رو Arabic انتخاب کردم DataGridViewCellStyle ولی فارسی نشد. فونت هایی که دوستان دیگر فرمودند ارور میده
truetype
نقل قول: نمایش اعداد فارسی در دیتاگرید
نقل قول:
نوشته شده توسط
ahmad1010
از اینجا فونت رو Arabic انتخاب کردم DataGridViewCellStyle ولی فارسی نشد. فونت هایی که دوستان دیگر فرمودند ارور میده
truetype
فونت رو اول نصب کنید بعدش سیستم رو یکبار ریستتارت کنید
تا شناخته بشه
نقل قول: نمایش اعداد فارسی در دیتاگرید
فونت شناخته شد ولی همچنان اعداد لاتین نمایش داده می شوند.
نقل قول: نمایش اعداد فارسی در دیتاگرید
نقل قول:
نوشته شده توسط
ahmad1010
فونت شناخته شد ولی همچنان اعداد لاتین نمایش داده می شوند.
یکبار حالت کانتکس رو از تنطیمات زبان ویندوز بررسی کنید احتمال زیاد درست بشه.
نقل قول: نمایش اعداد فارسی در دیتاگرید
ممنون درست شد. مشکل از تنظیمات ویندوز بود. خیلی لطف کردی.