PDA

View Full Version : مبتدی: اعداد فارسی در لیبل سی شارپ



payam200525
یک شنبه 08 تیر 1393, 18:16 عصر
سلام دوستان ...کسی میدونه چجوری میتونم اعداد رو در یک لیبل بصورت فارسی نمایش بدم؟
مثلا میخوام تاریخ سیستم رو که در یک لیبل بصورت اعداد انگلیسی هست به فارسی نشون بدم...
ممنون

mohamadali1374
یک شنبه 08 تیر 1393, 18:23 عصر
سلام

کافی از خاصیت font لیبل یه فونت فارسی رو انتخاب کنید.

payam200525
یک شنبه 08 تیر 1393, 18:29 عصر
ممنون دوست عزیز ولی این کار رو کردم اما کار نکرد !!

mohamadali1374
یک شنبه 08 تیر 1393, 18:33 عصر
من همین الان از فونت Mj_Najm Bold استفاده کردم و جواب داد از این فونت استفاده کنید ببینید چی میشه ؟؟

golestan1
یک شنبه 08 تیر 1393, 18:57 عصر
برای تاریخ که کامپوننت هم وجود داره اما اگه هر جا علل خصوص در هنگام کد نویسی بخواهید اعداد فارسی تایپ کنید یه برنامه کم حجم هستش که کافیه اونو اجرا کنید و شروع به تایپ کنید تا اعداد به صورت فارسی بشه اینم اسمش
Persian Numerals
من از سایت سرزمین دانلود دانلود کردم و در محیط کد نویسی ازش استفاده کردم

aliagamon
یک شنبه 08 تیر 1393, 19:56 عصر
یعنی اعداد لاتین رو به اعداد عربی تبدیل کنید ؟
روش اصولیش اینه :

public string ConvertToEasternArabicNumerals(string input)
{
System.Text.UTF8Encoding utf8Encoder = new UTF8Encoding();
System.Text.Decoder utf8Decoder = utf8Encoder.GetDecoder();
System.Text.StringBuilder convertedChars = new System.Text.StringBuilder();
char[] convertedChar = new char[1];
byte[] bytes = new byte[] { 217, 160 };
char[] inputCharArray = input.ToCharArray();
foreach (char c in inputCharArray)
{
if (char.IsDigit(c))
{
bytes[1] = Convert.ToByte(160 + char.GetNumericValue(c));
utf8Decoder.GetChars(bytes, 0, 2, convertedChar, 0);
convertedChars.Append(convertedChar[0]);
}
else
{
convertedChars.Append(c);
}
}
return convertedChars.ToString();
}

اما از replace هم میتونید استفاده کنید ... :

public static string LatinNumToArabic(string str)
{
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("0", "٠");
dic.Add("1", "١");
dic.Add("2", "٢");
dic.Add("3", "٣");
dic.Add("4", "٤");
dic.Add("5", "٥");
dic.Add("6", "٦");
dic.Add("7", "٧");
dic.Add("8", "٨");
dic.Add("9", "٩");
foreach (KeyValuePair<string, string> entry in dic)
{
str = str.Replace(entry.Key, entry.Value);
}
return str;
}

amir200h
یک شنبه 08 تیر 1393, 20:22 عصر
private void textBox1_KeyPress(object sender, KeyPressEventArgs e){
if ((int)e.KeyChar >= 48 && (int)e.KeyChar < 58)
e.KeyChar = (char)(1632 + int.Parse(e.KeyChar.ToString()));
}

sh
چهارشنبه 11 تیر 1393, 20:35 عصر
در کد بالا عدد 1632 را با 1776 جایگزین کنید تا اعداد به جای عربی ، فارسی نمایش داده شود.