-
1 ضمیمه
کنترل سفارشی برای کار با مقادیر پولی
آخر نتونستم از همون کد بالایی استفاده کنم
ولی برای کم کردن کد نویسی در برنامه ام یک TextBox سفارشی نوشتم که اون کارهایی که میخوام رو انجام میده
1- اضافه کردن "ریال" و "," به اعداد
2- دادن خروجی عددی در یک متغیر جداگانه
2- selectAll شدن در هنگام فوکوس گرفتن
3- گرفتن فقط اعداد(0 1 2 3 ... 8 9) و کلیدهای کنترلی
اگه جاییش مشکل داره و یا امکانات دیگهای لازم داده تغییر داده/ بهش اضافه کنید و مجددا آپ نمایید.
ممنون
-
با سلام
لطفا فایل را چک کنید
من نتونستم فایل را باز کنم به گیر می خوردم
متشکرم
-
1 ضمیمه
zip شده فایل قبلی
چک شد مشکلی نداشت (مشکلتون در دانلود برنامه است یا باز کردن اون در روی کامپیوترتون)
مجددا اون رو به صورت zip هم آپلود میکنم تا اگه با rar مشکلی دارید حل بشه
-
2 ضمیمه
با سلام و کسب اجازه از آقای razavi_university تغییراتی در این کنترل ایجاد کردم که باعث کمتر شدن و ساده تر شدن کدها شده . همچنین مقدار بازگشتی خاصیت Value به decimal تغییر کرده که کاربر حتی با خالی بودن TextBox مقدار صفر را دریافت میکنه . خاصیت جدیدی از نوع string به نام ValueWithSeperator هم اضافه شده که مقدار وارد شده در کنترل را سه تا سه تا جدا میکنه .
خاصیت RightToLeft کنترل هم بدون دلیل override شده بود که حذف شد . اما اگر این کنترل صرفا برای این طراحی شده که اطلاعات را راست به چپ نمایش بده میشه این خاص را به این شکل بازنویسی کرد تا امکان تغییرش توسط کاربر وجود نداشته باشد .
public override RightToLeft RightToLeft
{
get
{
return base.RightToLeft;
}
set
{
base.RightToLeft = RightToLeft.Yes;
}
}
نتونستم آیکونش را به صورت دلخواه تغییر بدهم ولی الان آیکونش مثل آیکون TextBox شده .
-
خواهش میکنم این تاپیک برای همینکاره
دوست عزیز نسخه بعدی این کنترل رو چند روز پیش در قسمت نمونه برنامهها گذاشتم که تقریبا یکم کدنویسیش کمتر شده و بهینهتر که البته نسخه جدید رو فقط در قسمت نمونه برنامهها گذاشتم واینجا نگذاشتم(چون این تاپیک یکم قدیمی شده بود برای اینکه تاپیک رو بدون دلیل بالا نیارم ودو بار ضمیمه نکنم)
حالت 3تا 3تا جدا شدن با Override کردن خاصیت Text انجام شده. این کنترل برای کار با مقادیر پولی فارسی است، بنابراین فکر میکنم اعداد داخل ان باید به شکل فارسی نمایش داده شوند. به همین علت کنترل باید Right to left باشد.
در مورد نوع بازگشتی Value بهتره String باشه تا کاربر در مواقع نیاز به نوع مورد نظر خودش تبدیل کنه، (چون من در برنامه ام مقدار Value رو به پارامترهای SqlCommand میفرستم نیازی به تغییر نوعش نبود)
نسخهجدیدتر در قسمت نمونهبرنامهها
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
دوست عزیز اینکه با تکست باکس معمولی فرقی نداره نتیجه اجرا رو سیستم من :
http://irapic.com/uploads/1215427219.jpg
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
نقل قول:
نوشته شده توسط
sahmah65
دوست عزیز اینکه با تکست باکس معمولی فرقی نداره نتیجه اجرا رو سیستم من :
مطمئنی ؟؟؟ :متعجب: :متعجب: :متعجب:
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
samah65 کدام فایل را شما دانلود کردید مال آقای رضوی را یا از آقای ezamnejad را ؟
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
نقل قول:
نوشته شده توسط
rahman_ramin
samah65 کدام فایل را شما دانلود کردید مال آقای رضوی را یا از آقای ezamnejad را ؟
مال آقای رضوی رو و برای خودمن هم عجیب بود که چرا اینطوری شد.
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
سلام دوستان
درباره Money TextBox باید بگویم که اگر مشکلات آن رفع بشده در بسیاری از برنامه کاربرد خواهد داشت.
1-چسبدیدن و نزیکی زیاد ریال به اعداد می باشد.
2-در صورتی که CurrencySymbol خالی باشد خطا می دهد.
3-با اعشار مشکل دارد و آن را حذف می کند.
ممنون می شوم که خطاهای آن را رفع کنید و به من اطلاع دهید.
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
دوست عزیز من هم واسه همین سورسشو رو گذاشتم که شما بتونین خودتون تغییرات لازم واسه کارتون رو بهش بدین ولی تا حد امکان سعی کردم امکاناتش عمومیت داشته باشه
در مورد خطاهایی که فرمودین:
1- فکر نمی کنم بیشتر از یک فاصله جالب باشه (از نظر من جالب نبود تفاوت در سلیقه همینه دیگه)
2- خوب آخه واسه من پیش نیومد که بخوام CurrencySymbol رو خالی بگذارم همیشه یه چیزی می گذاشتم (ریال، کیلو و ...)
3- واسه کار من نیازی به اعشار نداشت واسه همین عمدا حذفش کردم
نتیجه گیری آخر : من چون نمی دونم شما چه استفاده ای ازش می خوایید بکنید بهتره خودتون بر حسب نیازتون تغییرش بدین و نسخه نهایی رو هم همینجا قرار بدین تا سایر دوستان هم استفاده کنند
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
من برای گرم و کمتر نیاز به اعشار دارم بنابراین هرچه خواستم کد آن را عوض کنم نتوانستم نیاز به اعشار را اضافه کنم.
در مورد فاصله هم باید بگویم که اینگونه نشان می دهد:
456,544,100ریال
اگر می شد که قابلیت گذاشتن فاصله به آن اضافه کرد مناسب تر هست:
456,544,100 ریال
من برای این مشکل هرچه سعی کردم ولی حل نشد.
این یکی مشکل زیاد حاد نیست ولی من می خواستم که فقط اعداد را در text نمایش بدهم و ریال را در caption. این مشکل نیز نتوانستم رفع کنم.
بنابراین مشکل را حل کنید یا طریق رفع مشکل را به من راهنمایی کنید.
با تشکر از زحماتتان
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
البته من کد پیچیده ای واسه اون کنترل به کار نبردم . برای هر قسمتش کامنت گذاشتم تا واسه بقیه راهنما باشه
به هر حال سعی می کنم تغییراتی که لازم دارید رو در اون انجام بدم و نسخه جدیدش رو همینجا قرار می دم
این پست با نسخه جدید کنترل جایگزین می شود
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
برای اضافه کردن اعشار فقط به جای value = d.ToString("#,#");
این را بنویسید:
value = d.ToString("#,#.#");
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
میشه بگین این کار برای Web application چه جوری انجام میشه؟ ممنون میشم.
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
كسي نمي دونه تو Web application چه جوري مي شه اينكار رو كرد؟؟؟ خواهشا يكي جواب بده. تاپيك جديد كه نمي ذارن بنويسم!!!
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
با سلام
دوست عزیر اول باید ازتون تشکر کنم بابت این کار جالب ومفید یک پیشنهاد دارم که اگر توی این کار این رو اجرا کنی بسیار جالب میشه کامای بین اعدادو در زمان وارد کردن عدد بزاره خیلی جالب میشه من این کارو کردم و دارم ازش استفاده میکنم بد نیست
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
با سلام
من دو بار برنامه رو د انلود کردم ولی نتونستم استفاده کردم ممنون اگه بگین چه جوری باید استفاده کنیم
من به برنامه یه فرم اضافه کردم و این کنترل رو از toolboxبهش اضافه کردم ولی error میده . نمی دونم روش کارش چیه ؟؟ م منون
argument exception was unhandled
کد
Assembly 'C:\Documents and Settings\salam\Desktop\28sh\New Folder\Money TextBoxhh\Money TextBox\obj\Release\Money TextBox.dll' doesn't contain any UserControl types.
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
سلام من اين كد رو استفاده كردم و جواب داد ولي اين سه رقم شدن فقط در textbox اتفاق ميافته و در ديتاگريد ويو دوباره به شكل اول برميگرده بايد چكار كرد؟
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
خوب این کنترل فقط 3تایی نمایش میده برای اینکه DataGrid درست نمایش بده باید حالت نمایش اون Column از DataGrid رو تغییر بدین
جستجو کنین قبلا بحث شده
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
لطفا یکی بگه چه جوری باید ازش استفاده کرد من خیلی بهش احتیاج دارم تویه فرم اونو میارم ولی error میده .
یکی جوااااااااااب بده لطفا
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
dll تست شد و مشکلی نداشت
از کدوم نسخه اش استفاده میکنید بهتره اونی که در تاپیک نمونه برنامه ها است رو استفاده بکنین
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
نقل قول:
نوشته شده توسط
mahtab_18
سلام
جوابتون عالی بود من ابتدا اشتباهاً در رویداد click برنامه را نوشتم ولی بعد با جابجایی قطعه برنامه در رویداد text-change به جواب رسیدم.
فقط یه سوال و اون اینکه منظور از "N" چیست؟
میشه بگید چطوری در رویداد text-change به جواب رسیدید؟
آخه چطوری؟:متفکر:
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
سلام
این تاپیک که لینک هست بعد از این تاپیک زده شده ولی چون بحث اتوماتیک این موضوع اونجا مطرح شده بود بنده کد رو توی اون تاپیک گزاشتم کداول یه مشکل کوچیکی داره ولی کد دوم مشکل حل شده
https://barnamenevis.org/showth...244#post604244
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
من ازفایلی که تو نمونه برنامه ها قرار د ادید استفاده می کنم ولی همون error رو می ده
لطفا فقط بگید که چه جوری باید ازش استفاده کنم
Assembly 'C:\Documents and Settings\salam\Desktop\7mehr\Money TextBox\Money TextBox\obj\Release\Money TextBox.dll' doesn't contain any UserControl types.
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
از DLLی که در فولدر زیر است استفاده کنید.
Money TextBox\bin\Release\Money TextBox.dll
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
با سلام علاوه بر textboxی که سه رقم سه رقم اعدادو جداو میکنه آیا می شه که برای وارد کردن عدد 120000 ما فقط عدد 120رو وارد کنیم وسه تا صفر رو خودش اضافه کنه یعنی عدد رو با فرمت هزارریال وارد کنه. البته با تعریف فیلد قیمت به شکل decimal(18,3) سه تا صفر تو بانک ا ضافه میشه ولی تو textbox وارد نمیشه امیدوارم منظورمو درست گفته باشم
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
بله این امکان را به راحتی با تغییر سورس می توان قرار داد
3صفری که فرمودین بعد از ممیز اضافه می شوند و ارزش عددی ندارند
-
1 ضمیمه
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
اين كدروامتحان كنيد:
int s = 1237;
Console.WriteLine(s.ToString("0,0"));
//1,237
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
يابه اين صورت:
int s = 1237;
Console.WriteLine(s.ToString("#,#"));
//1,237
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
البته هردوي اينها يك مثال عام هستند!دوستان گرامي كافي است به هرنوع داده عددي كه نيازدارند اين حالت راتعميم دهند.
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
نقل قول:
نوشته شده توسط
sasanazizi
این هم یک نمونه اش
نقل قول:
نوشته شده توسط
nathan
اين كدروامتحان كنيد:
int s = 1237;
Console.WriteLine(s.ToString("0,0"));
//1,237
نقل قول:
نوشته شده توسط
nathan
يابه اين صورت:
int s = 1237;
Console.WriteLine(s.ToString("#,#"));
//1,237
نقل قول:
نوشته شده توسط
nathan
البته هردوي اينها يك مثال عام هستند!دوستان گرامي كافي است به هرنوع داده عددي كه نيازدارند اين حالت راتعميم دهند.
با تشکر از تمامی دوستان
اگر دقت کنید روشهایی که فرمودین یا ضمیمه کردین در نسخه های اولیه MoneyTextBox استفاده شده.
مثلا استفاده از حالت
ToString("C");
یا
ToString("#,#")
به دلایل مشکلاتی که این روشها داشتند کنار گذاشته شدند به عنوان مثال استفاده از C برای چاپ ریال باعث قرار دادن آن سمت چپ می شود و یا استفاده از "#,#" به دلیل ایجاد مشکل برای حالت ممیز
روشهایی که اکثرا در MSDN یا سایتهای غیر فارسی زبان دیگر گفته می شود برای زبان و اعداد انگلیسی به خوبی کار می کند (چون اعداد و حروف از چپ نوشته می شوند) ولی برای زبانهایی مانند فارسی که مشکل راست به چپ کماکان در ویندوز نسبتا وجود دارد این روشها کارساز نیست (و یا می خواهیم ریال در سمت راست اضافه شود)
برای توسعه سریعتر و بهتر برای رسیدن به یک کنترل مناسب جهت استفاده در برنامه ها لطفا آخرین مثال را توسعه دهید
http://i34.tinypic.com/103ftoy.jpg
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
با سلام خدمت دوستان و تشکر
بچه ها ببینید کاری که کرده ام درسته من اول به پروژخ اصلی یک کلاس اضافه می کنم بعد با کپی کردن کلاس این تکس باکس و تغیر فضای نام و این کارها بعد کامپوننتی که در toolbox قرار گرفته را روی فرم می کشم و از آن استفاده می کنم
اما مشکل
حالا که می خواهم اطلاعات را به drideview وارد کنم برنامه قفل می شه اما در database اطلاعاتم ذخیره شده
چه کارکنم که این مشکل به وجود نیاد
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
نقل قول:
... قفل می شه ...
یعنی چی قفل میشه؟؟؟
دیباگ کنید ببینید مشکل از کجاس...
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
نقل قول:
نوشته شده توسط
razavi_university
با تشکر از تمامی دوستان
اگر دقت کنید روشهایی که فرمودین یا ضمیمه کردین در نسخه های اولیه MoneyTextBox استفاده شده.
مثلا استفاده از حالت
ToString("C");
یا
ToString("#,#")
به دلایل مشکلاتی که این روشها داشتند کنار گذاشته شدند به عنوان مثال استفاده از C برای چاپ
ریال باعث قرار دادن آن سمت چپ می شود و یا استفاده از
"#,#" به دلیل ایجاد مشکل برای حالت ممیز
روشهایی که اکثرا در MSDN یا سایتهای غیر فارسی زبان دیگر گفته می شود برای زبان و اعداد انگلیسی به خوبی کار می کند (چون اعداد و حروف از چپ نوشته می شوند) ولی برای زبانهایی مانند فارسی که مشکل راست به چپ کماکان در ویندوز نسبتا وجود دارد این روشها کارساز نیست (و یا می خواهیم
ریال در سمت راست اضافه شود)
برای توسعه سریعتر و بهتر برای رسیدن به یک کنترل مناسب جهت استفاده در برنامه ها لطفا آخرین مثال را توسعه دهید
http://i34.tinypic.com/103ftoy.jpg
روشهایی دیگران گفتند استفاده از C و ... درست هست ، شما با تغییر در numberformatinfo همه اینها را می توانید کنترل کنید.
-
نقل قول: جدا کردن 3 رقم 3 رقم اعداد جهت نمایش مقادیر پولی
نقل قول:
یعنی چی قفل میشه؟؟؟
مطنئن هستم که برنامه هیچ مشکل خاصی نداره
تنها زمانی که از این کلاس استفاده می کنم و برنامه را اجرا می کنم فرم ثابت می ماند و با یک کلیک به حالت not responding می رود ولی تغییرات در پایگاه اعمال می شود