PDA

View Full Version : سوال: فارسی نویسی در گریدویو



titipop1
جمعه 08 خرداد 1394, 22:15 عصر
درود
دوستان میشه در یه تکست باکس که ورودی عدد میگیره،عدد فارسی وارد نمود سپس این عدد در عملیات های محاسباتی و عملیات های کوئری(مثلا جمع یک ستون) شرکت کند بدون خطا ؟؟؟؟؟؟؟؟(در واقع میخوام کاربر با اعداد فارسی سر و کار داشته باشه)
لطفا راهنمایی کنید

god of war
جمعه 08 خرداد 1394, 22:48 عصر
سلام
دوست عزیز فکر کنم اگر یک آموزش مطالعه کنید جواب خیلی از سوالات رو میگیری
میتونی یک متغیر از نوع int تعریف کنی و اینجوری محتویات textbox رو بریزی توش


int i;
i=Convert.ToInt32(textBox1.text)

titipop1
شنبه 09 خرداد 1394, 00:41 صبح
سلام
دوست عزیز فکر کنم اگر یک آموزش مطالعه کنید جواب خیلی از سوالات رو میگیری
میتونی یک متغیر از نوع int تعریف کنی و اینجوری محتویات textbox رو بریزی توش


int i;
i=Convert.ToInt32(textBox1.text)


دوست عزیز ممنون بابت پاسختون ولی فکر کنم سوال منو متوجه نشدین منظور من عملیات محاسباتی روی اعداد فارسی هستش

ebrahim.rayatparvar
شنبه 09 خرداد 1394, 09:47 صبح
سلام مهندس منظور شما از عدد فارسی چیه؟؟
طمانی که ستون یه گرید رو به فونت B Nazanin به طور مثال میزاری فونت نوشته یا عدد فارسی شده ولی موجودیت عدد تغییری نکرده و با یه کانورتی که دوستمون گفته بودن همون معنی عدد رو برای محاسبه میده.

titipop1
شنبه 09 خرداد 1394, 13:29 عصر
مهندس جان این دستور دستمون رو هم قبلا امتحان کردم جواب نمیده البته من از قبل نوع فیلدهامو تو تیبل تعیین کردم درکل از همتون ممنونم

ebrahim.rayatparvar
شنبه 09 خرداد 1394, 14:33 عصر
پس نمونه کدت رو بذار اینجوری ما دقیقا نمی دونیم مشکل شما از کجاست

titipop1
شنبه 09 خرداد 1394, 14:55 عصر
پس نمونه کدت رو بذار اینجوری ما دقیقا نمی دونیم مشکل شما از کجاست
مهندس چیزی واسه نمونه وجود نداره که در خدمتتون بذارم سوال من اینه که میخوام تکست باکس ها و کمبوها گریدویوها اعداد فارسی دریافت کنن و محاسبات روی این اعداد هم انجام بشه البته نمیخوام زبان ویندوز فارسی بشه منظورم contorolpanel--- regional & languages هستش بعضی از دوستان این پیشنهاد رو دادن که با این کار تمام اعداد در ویندوز فارسی میشه
این کد ورود اعداد تکستباکس رو فارسی میکنه ولی موقع انجام محاسبات ریاضی خطا میده :

کد :

(if ((int)e.KeyChar >= 48 && (int)e.KeyChar < 58

()e.KeyChar = (char)(1632 + int.Parse(e.KeyChar.ToString
خطا :

ebrahim.rayatparvar
شنبه 09 خرداد 1394, 15:09 عصر
مهندس چیزی واسه نمونه وجود نداره که در خدمتتون بذارم سوال من اینه که میخوام تکست باکس ها و کمبوها گریدویوها اعداد فارسی دریافت کنن و محاسبات روی این اعداد هم انجام بشه البته نمیخوام زبان ویندوز فارسی بشه منظورم contorolpanel--- regional & languages هستش بعضی از دوستان این پیشنهاد رو دادن که با این کار تمام اعداد در ویندوز فارسی میشه
کد :

(if ((int)e.KeyChar >= 48 && (int)e.KeyChar < 58

()e.KeyChar = (char)(1632 + int.Parse(e.KeyChar.ToString
خطا :

این کد ورود اعداد تکستباکس رو فارسی میکنه ولی موقع انجام محاسبات ریاضی خطا میده :

شما میگید زبان فارسی وقتی شما برای ستون فونت فارسی اتخاب مب کنید اعداد گرفته شده به صورت فارسی هست مثل عکس زیر :

131806

ولی زمانی که میخوای بدون اینکه زبان ویندوز رو عوض کنی و کلمات فارسی برات تایپ بشه بهتره از System.Globalization استفاده کنی

titipop1
شنبه 09 خرداد 1394, 15:17 عصر
این کد ورود اعداد تکستباکس رو فارسی میکنه ولی موقع انجام محاسبات ریاضی خطا میده :

شما میگید زبان فارسی وقتی شما برای ستون فونت فارسی اتخاب مب کنید اعداد گرفته شده به صورت فارسی هست مثل عکس زیر :

131806

ولی زمانی که میخوای بدون اینکه زبان ویندوز رو عوض کنی و کلمات فارسی برات تایپ بشه بهتره از System.Globalization استفاده کنی

مهندس من Right To Left گریدویو رو yes کردم ولی اعداد تو گرید فارسی نمیشن؟البته فونت من Thoma هستش.

titipop1
شنبه 09 خرداد 1394, 15:32 عصر
مهندس نظرتون در مورد این کد چیه؟چطور استفاده میشه؟
private float GetNumericValueForString(string input


(for (int i = 0; i < input.Length; ++i
{
([if (char.IsDigit(input[i])

input = input.Replace(input[i].ToString(), char.GetNumericValue(input[i]).ToString());
}
}
return float.Parse(input);
}

god of war
شنبه 09 خرداد 1394, 17:09 عصر
سلام با کسب اجازه از ebrahim.rayatparvar عزیز
به نطر من شما با کد زیر در رویداد enter وابسته به textBox مورد نظر زبان رو خودکار به فارسی تغییر بده که اعداد وارد شده فارسی شه
ویژگی right to left تاثیری به زبان نوشتاری نداره


System.Globalization.CultureInfo inp = new System.Globalization.CultureInfo("fa-ir");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(inp);

titipop1
شنبه 09 خرداد 1394, 19:20 عصر
سلام با کسب اجازه از ebrahim.rayatparvar عزیز
به نطر من شما با کد زیر در رویداد enter وابسته به textBox مورد نظر زبان رو خودکار به فارسی تغییر بده که اعداد وارد شده فارسی شه
ویژگی right to left تاثیری به زبان نوشتاری نداره


System.Globalization.CultureInfo inp = new System.Globalization.CultureInfo("fa-ir");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(inp);

مهندس این کد زبان سیستم رو فارسی میکنه حروف فارسی میشه اما اعداد همون لاتین نوشته میشه،از طرفی من با اون تکه کد کنترل اعداد که در رویداد keypress تکست باکسام گذاشتم(بالا گذاشتمش) مشگل ورود اعداد فارسی رفع شده تنها مشگل اینه که این اعداد تو محاسبات ارور میده که بالا عکسشو قرار دادم

god of war
شنبه 09 خرداد 1394, 19:27 عصر
ببین مهندس یک سوال
شما تو عکسی که گذاشتی چندتا آیتم رو تبدیل کردی
اون comboBox که زدی combobox.Text مقدارش چیه ؟ یعنی از بانک گرفته اطلاعاتشو ؟؟؟
یا دستی ثبت شده ؟
اگه دستی ثبت کردی بجا Text بزن selectedItem ببین مشکل حل میشه ...
چون عدد که فرقی نداره فارسی یا انگلیسی
شاید ایراد از اونه
اگه از بانک گرفتی بگو که یه کد دیگه بگم بت

ebrahim.rayatparvar
شنبه 09 خرداد 1394, 19:32 عصر
مهندس به نظر من با فونت کارت رو راه بندازی بهتره چون کد اسکی رو دست نزنی بهتره اون کد اعداد فارسی نیست.