• مقدمه

یکی از مشکلاتی که با آن‌ها مواجه خواهید شد، مشکل خالی بودن Text Box ها می‌باشد! هنگامی که کاربر با نرم‌افزار تهیه شده توسط شما کار می‌کند، احتمالاً بعضی مواقع به‌صورت ناخودآگاه Text Boxای را خالی رها می‌کند. راه حل آن را در این بخش آموزشی خواهیم گفت.

  • کنترل خالی بودن Text Box

پروژه‌ی جدیدی را در Visual Studio به‌صورت Windows Application ایجاد کنید و فرمی شبیه به شکل زیر تهیه کنید:1-windows form

بر روی Buttonای که در فرم خود قرار داده‌اید، دوبار کلیک کنید و کد‌های زیر را در داخل آن بنویسید:

2-button code

کدهایی را که همانند بالا در نرم‌افزار خود نوشته‌اید را اجرا کنید. در واقع، کدهای بالا این عمل را انجام می‌دهند که یک شماره‌ای را بصورت int از یک Text Box دریافت می‌کند و به‌صورت یک String به MessageBox ارسال خواهد کرد.

اگر کدهای بالا را اجرا کردید، ابتدا یک شماره را در Text Box وارد کرده و بر روی Button کلیک کنید؛ باید همان عدد را در قالب یک MessageBox ببینید. این‌بار، Text Box را کاملاً خالی کرده و بر روی Button کلیک کنید! چه خواهد شد؟ باید خطایی شبیه به خطای زیر ببینید:

3-error_empty_txtbox

شاید خطاها به‌شکل‌های متفاوتی (بستگی به نسخه Visual Studio شما) نمایش داده شود، اما در هر صورت، خطا ناشی از خالی بودن این Text Box است.

برای جلوگیری از این مشکل، ما از یک متد با نام TryParse استفاده می‌کنیم. برای تبدیل ارقام ما قبلاً بدین شکل عمل می‌کردیم:

textBoxNumber = int.Parse(textBox1.Text);

متد Parse خالی بودن یا نبودن یک Text Box را بررسی نمی‌کند و مستقیماً می‌خواهد که مقدار داخل Text Box تعیین شده را به مقدار خواسته شده تبدیل کند، بنابراین ممکن است که در بعضی مواقع، به‌خاطر اشتباه کاربر که یک Text Box را خالی گذاشته، با خطایی روبرو شود.

بنابراین در متد TryParse به سی‌شارپ می‌گوییم که اول ببیند آیا مقدار داخل Text Box قابل تبدیل است یا نه. کدهای ما شکلی شبیه به زیر را خواهند داشت:

4-tryparse

کد فوق به شکل زیر است:

متغیر outputValue، مقدار تغییر یافته را در خود نگه‌داری خواهد کرد. یک متغیر از نوع Bool نیز تعریف می‌کنیم که ببینیم آیا متد TryParse می‌تواند مقدار داخل را تبدیل کند یا نه! اگر جواب مثبت بود، مقدار آن True می‌شود؛ در غیراینصورت False خواهد بود.

پس از آنکه از TryParse استفاده می‌کنید،‌ باید بررسی کنید که آیا مقدار، قابل تبدیل است یا خیر! پس با استفاده از دستور IF … ELSE، این شرط را بررسی می‌کنیم.

در داخل IF، ما کد را به‌این شکل نوشتیم که اگر مقدار قابل تبدیل بود، با استفاده از علامت NOT (!)، مقدار را False می‌کنیم تا وارد کدهای درون IF نشود و کدهای ELSE را اجرا کند. اما اگر مقدار ما قابل تبدیل نبود، پس مقدار isNumber برابر با False خواهد شد و با استفاده از دستور منطقی NOT، به True تبدیل می‌شود و وارد بدنه IF می‌شود.

جهت دریافت این بخش آموزشی به‌صورت فایل PDF،‌ اینجا را کلیک کنید.

نظرات کاربران
اشتراک در
اطلاع از
21 نظرات
rastegar.amir3
13 سال قبل

سلام . ممنون از اموزش ولی فکر می کنم فضای سی شارپ اشباع شده! الان جای جاوا خیلی توی آموزش ها کمه … ای کاش درمورد اون می نوشتید.
به هر حال ممنون

nima101
13 سال قبل

بی صبرانه منتظر بخش 23 هستیم …

Reza
13 سال قبل

تشکر

ققنوس
13 سال قبل

با سلام
و تشکر از آموزشی که گذاشتید.
ببخشید یک سوال ساده داشتم.
قسمت پایانی این بخش :
مگر ابتدا isnumber = false نیست؟ پس وقتی در texbox عددی وارد نمیکنیم isnumber هنوز False می باشد.
سوالم اینجاست چرا در ادامه !isnumber برابر False است؟ مگر عمل not این مقدار رو نباید True کند؟ پس چرا هنوز False است؟

Praise
13 سال قبل

سلام

میشه اجزای این خط از برنامه ( مثلا out outputValue) رو کامل توضیح بدین که چیکار می کنه؟!

isNumber = int.TryParse(txbx.Text, out outputValue);
سپاس فراوان

Praise
پاسخ به  Jeff Mosawy
13 سال قبل

ممنون از توضیحات مبسوط و کامل شما

پس با این حساب out توی out outputValue باعث میشه مقدار تبدیل شده داخل Text Box توی متغیر outputValue ذخیره بشه ! درسته؟!

امیر
13 سال قبل

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

nushin
13 سال قبل

با سلام و خسته نباشید. اگه ممکنه منو راهنمایی کنید.
من یه پروژه نوشتم که پایگاه دادم SQL است. و برای ثبت اطلاعات اول باید چک کنه که بعضی از textbox ها پر شده باشه. کدش را چطوری باید بنویسم؟ ممنون میشم اگه کمکم کنید.

nushin
13 سال قبل

مرسی که جواب دادید!!!

ابراهیم
13 سال قبل

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

ابراهیم
13 سال قبل

ممنون اقای موسوی خیلی خوب توضیح دادی خدا قوت همیشه سربلند و پیروز باشی

n
11 سال قبل

اگر در یک فیلد عدد وارد کنیم پیغام خطل بدهد کد لازم رو میخوام

صدرا
8 سال قبل

سلام عالی هستین خیلی زیاد به این وبلاگتون سر میزنم با اینکه مطالب کمی میزارید هر روز میام و حتی مطالب قدیمی رو دوباره میخونم و به دردم میخوره و با شوق از وبلاگ خارج میشم ممنون که انقدر عالی هستین