نمایش نتایج 1 تا 1 از 1

نام تاپیک: فارسی تکست باکس

  1. #1

    Post textBox فارسی - فارسی تکست باکس

    سلام...

    من همیشه یه مشکل خیلی بزرگی داشتم و اون هم نمایش صحیح فارسی توی تکست باکس بود، مثلا اگه قرار بود یه چیز فارسی بنویسم با توجه به کیبورد های مختلف مشکل ی و ک فارسی منو خیلی اذیت می کرد، یا این که اگه قرار بود که داخل تکس باکس یه مبلغ درج بشه، باید به صورت ۳ رقم ۳ رقم جدا می شد و همون لحظه به کاربر نشون می داد.

    بالاخره خودم دست به کار شدم و یه کنترل تکست باکس برای حل همین دوتا مشکلی که بالا ذکر کردم، نوشتم، یه مقداری هم روی زیباییش کار کردم و خداروشکر ازش راضی هستم... خوشبختانه خیلی از مشکلات من رو حل کرد... قصد دارم کاملترش کنم، به همین خاطر اونو اینجا آپلود کردم تابقیه دوستان ببینن و اگه نظری برای بهتر کردنش دارن بدن.

    یه مقدار هم درموردش توضیح میدم:
    من برای تبدیل ی و ک عربی به فارسی از تابع مشهور زیر استفاده کردم:

    public static string convertArabicToFarsiString(string letter)
    {
    string output = letter;
    output = output.Replace("ې", "ی");
    output = output.Replace("ي", "ی");
    output = output.Replace("ك", "ک");

    return output;
    }


    همین طور برای ۳ رقم ۳ رقم جدا کردن هم از تابع زیر، که به نظرم احتیاج به توضیح نداره و یه سری پردازش روی رشته است:


    public static string numberToMoney(string input, bool rightToLeft = true)
    {
    input = moneyToNumber(input);
    double inp_int = Convert.ToDouble(input);
    bool containDot = false;
    if (inp_int < 0)
    {
    input = input.Remove(0, 1);
    }
    string[] s = { "", "" };
    if (input.Contains('.'))
    {
    s = input.Split('.');
    input = s[0];
    containDot = true;
    }
    string outputT = "";
    string output = "";
    int j = 0;
    for (int i = input.Length - 1; i >= 0; i--)
    {
    outputT += input[i];
    if (j % 3 == 2 && j < input.Length - 1)
    {
    outputT += ",";
    }
    j++;
    }
    for (int i = outputT.Length - 1; i >= 0; i--)
    {
    output += outputT[i];
    }
    if (containDot)
    output += "." + s[1];
    if (inp_int < 0)
    {
    if (rightToLeft)
    output = output.Insert(output.Length, "-");
    else
    output = output.Insert(0, "-");
    }
    return output;
    }


    خیلی ممنونم از شما دوستانی که خیلی از مشکلات من رو تو همین سایت حل کردید و دوست داشتم این یه هدیه ای به همه رفقا باشه (البته اون قدرها هم آش دهن سوزی نیست)

    هم سورس farsiTextBox و هم یه نمونه برنامه ازش رو توی ضمیمه ها گذاشتم
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله mostafah110 : یک شنبه 27 فروردین 1391 در 13:55 عصر دلیل: تغییر عنوان

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •