My Programming Notes

Here are Notes.... come from debugging

My Programming Notes

Here are Notes.... come from debugging

جمعه, ۱۱ مرداد ۱۳۹۲، ۰۵:۴۸ ب.ظ

ورودی Text Box را محدود کنیم!

 فرمی داشتم که در آن تعدادی text Box برای ورود اطلاعات نیاز بود. این text Box ها اختصاصا باید عدد می گرفتند و یه جورایی کاربر نباد حروف الفبا وارد می کرد. برای اینکه از خطاهایی که در صورت وارد کردن کاراکتر الفبا در این text Box ها هنگام محاسبات جلوگیری کنم باید مانع ورود حروف می شدم.

یعنی اگر کاربر حتی کلید های حروف را می فشرد ، هیچ چیزی در text Box ثبت نشود.

بعد از جستجو (Google) در منابع موجود به راه حل زیر رسیدم:

در Text Box مورد نظر event (رویداد) PreviewTextInput را  اضافه می کنیم.

در CS فرم (Window در WPF) ابتدا NameSpace : System.Text.RegularExpression اضافه می کنیم.

کد زیر را در رویداد TextBox می نویسیم.

;("[Regex Regex = new Regex("[0-9

;(e.handled = Regex.IsMatched(e.text

# محدوده 0 تا 9 که مشخص کردم ، می تواند با هر محدوده دیگری و یا هر شرایطی که برای textBox خود می خواهید قائل شوید جایگزین شود. مثلا اگر می خواهید همه کاراکترها به جز این اعداد را بپذیرد می توانید به صورت ^9-0^ بنویسید. ^ : یعنی به جز!

#handled  کلاسی از NameSpace:System.Windows.Forms است. این کلاس مقداردهی مربوط به روریداد KeyPress (فشردن صفحه کلید) را انجام می دهد.


موافقین ۸ مخالفین ۱ ۹۲/۰۵/۱۱
سارا زکی زاده

TextBox

سی شارپ

نظرات  (۳)

سلام خانم زکیزاده
خسته نباشید
یه سؤالی ک داشتم میخواستم بدونم در کدی که در رویداد TextBox نوشتید ↓

;("[Regex Regex = new Rege("[0-9

;(e.handled = Regex.IsMatched(e.text

برنامه از طریق کدوم کلمه پی میبره ک ما عدد براش تعریف کردیم و در حقیقت از اعداد باید استفاده کنه؟

یا به عبارت دیگه

چه چیزی سبب میشه که محدوده اعداد مورد نظر درست برا برنامه تعریف بشه؟

امیدوارم منظور سؤالم رو متوجه شده باشید، اگه نه بیشتر توضیح بدم

پاسخ:
سلام. اگر سوالتون رو خوب فهمیده باشم:
در نمونه ای که از  کلاس Regex از NameSpace:RegularExpression ساختیم ، محدوده اعداد رو مشخص کریم.
در مورد Regular Expression :
از کلاس های مختلفی تشکیل شده :Regex ,Match,MatchCollection ,..... 
 کلاسی هستش که با امکاناتش می تونید داخل یک رشته با فرمتی که بهش دادید جستجو کنید حتی replaceو ...  انجام دهید.
یه توضیح مختصر بود. امیدوارم که مفید بوده باشه. اینم یک لینک منبع البته انگلیسی 
سوالی بود در خدمتم.
۱۳ مرداد ۹۲ ، ۱۱:۵۸ میثم هوشمند
پیشنهاد میکنم از این  لینک هم دیدن کنید!
http://www.ultrapico.com/expresso.htm

ضمنا یادمان باشد/بماند که درس نظریه ی زبان دقیقا در بخش هایی بلکه در تمام بخش ها اشاره دارد به همین بحث RegEx در حقیقت آنچه که به عنوان دستور زبان یک زبان در درس نظریه ی زبان می نویسیم همین RegEx هست که در سی شارپ نوشته می شود. آن جا هم زبان های باقاعده داریم!

در درس طراحی کامپایلر با شیرینی فهم اینکه چه طور کامپیوتر این عبارات با قاعده را پردازش می کند مواجه می شویم!
و اینکه بعضا RegEx مربوط به دستورات مثلا شرطی حلقه ها تعریف توابع و... زبان برنامه نویسی ... را میبینیم و درک می کنیم!
لذت خیلی خوبی دارد!

موفق باشید

پاسخ:
ممنونم آقای هوشمند .به نکته های خوبی اشاره کردید.
شاید وقتی درگیر کار عملی می شویم ارتباط بین همه دروس دانشگاهی رو درک می کنیم.
و شاید این ایراد به دانشگاه های ما وارد باشد که کار عملی سهم کمی را در آموزش به خود اختصاص داده. البته خداروشکر ما که در دانشگاهمان آنقدر دوستان فعال داریم که برای بقیه هم از جمله خودم موتور محرک هستند.
خداخیرشان بدهد.
سلام...این هم رجکسیه که برای دریافت اعداد فارسی استفاده میشه
$+[0-9]^


پاسخ:
سلام .
بله همون Regex  هستش.
حالا این رجکس نه فقط برای بررسی یک TextBox بلکه هر جا می تواند برای چک کردن یک متن استفاده شود.
ممنون که سرزدید.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی