دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
کنترل NumericUpDown در سی شارپ
1404/04/25 -
کنترل Notify Icon در سی شارپ
1404/04/20 -
رمزنگاری نامتقارن Asymmetric در SQL Server
1404/04/18 -
کنترل MenuStrip در سی شارپ
1404/04/17 -
قفل گذاری روی اطلاعات در پایگاه داده SQL
1404/04/10
کنترل NumericUpDown در سی شارپ

مقدمه
اگر به دنبال راهی برای گرفتن ورودی عددی دقیق و کنترلشده از کاربر در برنامههای Windows Forms هستید، کنترل NumericUpDown در سی شارپ (#C) یکی از بهترین گزینههاست.
این کنترل به شما امکان میدهد تا کاربر فقط اعداد را در محدودهای خاص وارد کرده و با دکمههای بالا و پایین آن را افزایش یا کاهش دهد.
🧩 کنترل NumericUpDown در C# چیست؟
NumericUpDown یک کنترل عددی است که در محیط Windows Forms برای دریافت مقادیر عددی بهکار میرود.
این کنترل شامل یک جعبه متنی (TextBox) بههمراه دو دکمه بالا و پایین است. با استفاده از این دکمهها، میتوان مقدار عددی را بدون نیاز به تایپ کردن تغییر داد.
⚙️ ویژگیهای کنترل NumericUpDown در سی شارپ
در ادامه لیستی از مهمترین ویژگیهای این کنترل آمده است:
ویژگی | توضیح |
Value | مقدار فعلی کنترل |
Minimum | حداقل مقدار مجاز |
Maximum | حداکثر مقدار مجاز |
Increment | میزان افزایش یا کاهش در هر کلیک |
DecimalPlaces | تعداد ارقام اعشار قابل نمایش |
ReadOnly | فقطخواندنی کردن فیلد عددی |
ThousandsSeparator | نمایش جداکننده هزارگان |
Hexadecimal | نمایش عدد به صورت هگزادسیمال |
⚡ رویدادهای مهم کنترل NumericUpDown در سی شارپ
رویداد (Event) | کاربرد |
ValueChanged | اجرا هنگام تغییر مقدار |
KeyUp, KeyDown | تعامل با صفحهکلید |
Leave | زمانی که کنترل فوکوس را از دست میدهد |
Enter | زمانی که کنترل فوکوس میگیرد |
TextChanged | زمانی که متن تغییر میکند (مفید برای حالت read-only) |
🧩 مثال ساده کنترل NumericUpDown
numericUpDown1.Minimum = 0;
numericUpDown1.Maximum = 100;
numericUpDown1.Increment = 5;
numericUpDown1.DecimalPlaces = 2;
numericUpDown1.Value = 10;
numericUpDown1.ValueChanged += (s, e) =>
{
MessageBox.Show("مقدار جدید: " + numericUpDown1.Value);
};
✅ مزایای کنترل NumericUpDown در سی شارپ
1.🎯 کنترل دقیق مقدار عددی
کاربر فقط میتواند عددی در محدودهای مشخص (مثلاً 0 تا 100) وارد کند، که احتمال خطا را کاهش میدهد.
2.🚫 جلوگیری از ورود کاراکتر غیرعددی
برخلاف TextBox، این کنترل بهصورت پیشفرض فقط عدد میپذیرد؛ نیازی به اعتبارسنجی دستی نیست.
3.⚙️ پشتیبانی از تنظیمات متنوع
با ویژگیهایی مانند Minimum, Maximum, Increment, DecimalPlaces, و Hexadecimal، کاملاً قابل تنظیم برای نیازهای مختلف است.
4.🔄 افزایش یا کاهش آسان مقدار
کاربر میتواند با کلیک روی دکمههای بالا/پایین عدد را تغییر دهد، بدون نیاز به تایپ کردن.
5.📏 مناسب برای فرمهای مالی و محاسباتی
برای وارد کردن اعدادی مثل قیمت، وزن، تعداد، امتیاز، موجودی انبار و... بسیار مناسب و ایمن است.
6.🧼 جلوگیری از ورود دستی (در صورت نیاز)
با تنظیم ویژگی ReadOnly = true میتوان تایپ دستی را غیرفعال کرد و فقط دکمهها فعال باشند.
7.💡 سادگی در پیادهسازی
استفاده از آن بسیار سادهتر از اعمال اعتبارسنجی عددی در TextBox است.
8.🧩 یکپارچگی با سایر کنترلها
به راحتی میتوان آن را در کنار Label, Button, ProgressBar یا کنترلهای سفارشی استفاده کرد.
9.📱 ظاهر کاربرپسند
ظاهر کنترل شبیه به فرمهای حرفهای ویندوزی است و نیاز به طراحی خاص ندارد.
10.📚 رویدادهای قابل استفاده برای واکنش سریع
مثل ValueChanged که در لحظه تغییر مقدار میتوان عملیات خاصی انجام داد.
آیا به دنبال یک فرصت عالی برای یادگیری برنامهنویسی هستید؟ 🚀
با دوره آموزشی سیشارپ ما، شما میتوانید مهارتهای خود را به سطح جدیدی ارتقا دهید! این دوره بهطور کامل طراحی شده تا به شما کمک کند تا از مبتدی تا پیشرفته در دنیای برنامهنویسی سیشارپ پیش بروید.
👨🏫 چرا دوره ما را انتخاب کنید؟
- محتوای جامع و عملی: با پروژههای واقعی و تمرینات عملی، یادگیری را به تجربهای جذاب تبدیل کنید.
- مدرس مجرب: از تجربه و دانش مدرس حرفهای بهرهمند شوید که شما را در هر مرحله از یادگیری راهنمایی میکنند.
- پشتیبانی ۲۴/۷: هر زمان که سوالی داشتید، ما در کنار شما خواهیم بود تا به شما کمک کنیم.
- دسترسی مادامالعمر: به محتوای دوره دسترسی دائمی داشته باشید و هر زمان که خواستید، میتوانید به آن مراجعه کنید.
💡 فرصت را از دست ندهید!
بایادگیری سیشارپ، میتوانید در دنیای فناوری اطلاعات به یک متخصص تبدیل شوید و در پروژههای جذاب و چالشبرانگیز شرکت کنید.
همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آیندهای روشنتر بردارید!
شرکت در دوره آموزش برنامه نویسی سی شارپ
🎯 کاربردهای دقیق و عملی کنترل NumericUpDown در سی شارپ
1. ✅ دریافت عدد در بازه مشخص
کاربرد: وقتی میخواهیم کاربر فقط عددی بین دو مقدار مشخص وارد کند (مثلاً 1 تا 100).
مثال:
numericUpDown1.Minimum = 1;
numericUpDown1.Maximum = 100;
موقعیت استفاده: ثبت امتیاز، نمره آزمون، تعداد اقلام سفارش
2. ✅ جلوگیری از ورود کاراکتر غیرمجاز
کاربرد: جلوگیری از تایپ حروف یا نمادها در فیلد عددی (برخلاف TextBox که آزادانه میتوان هر کاراکتری وارد کرد).
مزیت: نیازی به نوشتن کد اعتبارسنجی نیست؛ فقط عدد وارد میشود.
موقعیت استفاده: فرمهای پرداخت، ثبت قیمت، تعداد محصول
3. ✅ افزایش یا کاهش عدد با گام مشخص
کاربرد: عدد با هر بار کلیک بالا یا پایین، با گام مشخصی تغییر کند.
مثال:
numericUpDown1.Increment = 5;
موقعیت استفاده: ثبت مقدار قسط ماهانه، تعداد نسخهها، تنظیم فاصله زمانی (مثل 5 دقیقهای)
4. ✅ کار با اعداد اعشاری
کاربرد: ثبت قیمت یا مقادیر اعشاری دقیق (مثل وزن، قد، درصد، نرخ سود)
مثال:
numericUpDown1.DecimalPlaces = 2; // تا دو رقم اعشار
numericUpDown1.Value = 12.50M;
موقعیت استفاده: قیمتگذاری، فرمهای مالی، محاسبه وزن کالا
5. ✅ نمایش عدد با فرمت جداکننده هزارگان
کاربرد: نمایش بهتر و خواناتر اعداد بزرگ مثل 1,000,000
مثال:
numericUpDown1.ThousandsSeparator = true;
موقعیت استفاده: فرم مالی، ثبت مبلغ، موجودی انبار
6. ✅ نمایش عدد بهصورت هگزادسیمال (Hex)
کاربرد: در پروژههای مرتبط با شبکه، رنگها، سختافزار یا توسعه سطح پایین
مثال:
numericUpDown1.Hexadecimal = true;
موقعیت استفاده: تنظیم کد رنگ، آدرسهای حافظه، شماره پورت
7. ✅ غیرفعالکردن تایپ دستی عدد (فقط دکمهها فعال باشند)
کاربرد: فقط دکمههای بالا و پایین برای کنترل مقدار فعال باشند.
مثال:
numericUpDown1.ReadOnly = true;
موقعیت استفاده: جلوگیری از خطای انسانی، فرمهای kiosk، فرمهای فروشگاهی
8. ✅ اجرای عملیات همزمان با تغییر مقدار (رویداد ValueChanged)
کاربرد: بلافاصله پس از تغییر عدد، یک عملیات خاص انجام شود.
مثال:
numericUpDown1.ValueChanged += (s, e) =>
{
lblResult.Text = "مقدار جدید: " + numericUpDown1.Value.ToString();
};
موقعیت استفاده: فرم محاسبه خودکار قیمت، امتیازدهی لحظهای، آپدیت موجودی
9. ✅ استفاده در فرمهای فاکتور و فروش
کاربرد: ثبت تعداد کالا، مقدار تخفیف یا مالیات بهصورت عددی دقیق
مثال پروژهای:
در فاکتور فروش، تعداد کالا با NumericUpDown وارد میشود و مجموع قیمت در لحظه محاسبه میگردد:
decimal total = numericUpDownQty.Value * pricePerItem;
10. ✅ کنترل دقیق زمان یا پارامترهای قابل تنظیم
کاربرد: تنظیمات نرمافزاری مثل سرعت، مدت زمان، درجه صدا، حساسیت
مثال:
numericUpDownDelay.Minimum = 100;
numericUpDownDelay.Maximum = 5000;
numericUpDownDelay.Increment = 100;
موقعیت استفاده: تایمر، تنظیمات پیشرفته نرمافزار، فرمهای مهندسی
🛠️ پروژه عملی: فرم ثبت امتیاز کاربر با کنترل عددی
در این بخش، یک فرم ساده ثبت امتیاز کاربران را پیادهسازی میکنیم که با استفاده از NumericUpDown مقدار امتیاز را بین ۰ تا ۱۰۰ دریافت میکند.
🎯 هدف پروژه:
دریافت امتیاز عددی از کاربر
بررسی مقدار مجاز
نمایش امتیاز نهایی پس از تایید
✅ طراحی فرم
یک فرم جدید بسازید.
یک کنترل Label با متن "امتیاز خود را وارد کنید:" اضافه کنید.
یک کنترل NumericUpDown اضافه کنید و تنظیمات زیر را اعمال کنید:
numericUpDownScore.Minimum = 0;
numericUpDownScore.Maximum = 100;
numericUpDownScore.Increment = 5;
numericUpDownScore.DecimalPlaces = 0;
یک دکمه Button با متن "تایید امتیاز" اضافه کنید.
در رویداد Click دکمه بنویسید:
private void btnSubmit_Click(object sender, EventArgs e)
{
int score = (int)numericUpDownScore.Value;
if (score >= 90)
MessageBox.Show("آفرین! امتیاز عالی کسب کردید.");
else if (score >= 60)
MessageBox.Show("امتیاز خوب بود.");
else
MessageBox.Show("نیاز به تلاش بیشتر دارید.");
}
✋ جلوگیری از ورود دستی عدد
اگر میخواهید فقط از دکمههای بالا و پایین برای انتخاب عدد استفاده شود (و تایپ دستی غیر فعال شود)، ویژگی ReadOnly را روی true تنظیم کنید:
numericUpDownScore.ReadOnly = true;
💡 نکات پیشرفته در استفاده از NumericUpDown
اگر مقدار عددی باید به صورت اعشاری باشد، مثلاً برای ثبت وزن یا قیمت، میتوانید ویژگی DecimalPlaces را افزایش دهید.
برای تنظیم خودکار عدد هنگام خروج از کنترل، از رویداد Leave استفاده کنید.
اگر پروژه شما نیاز به کنترل مقدار مانده حساب یا موجودی انبار دارد، NumericUpDown یک ابزار امن و دقیق است.
🧠 جمعبندی
کنترل NumericUpDown در سی شارپ، یکی از پرکاربردترین کنترلهای ورودی عددی در پروژههای ویندوز فرم است که با امکاناتی چون محدود کردن بازه، پشتیبانی از اعشار، جلوگیری از تایپ دستی و رویدادهای کاربردی، توسعه فرمهای حرفهای را آسان و قابل اعتماد میکند.
دوره های مرتبط

آموزش برنامه نویسی سی شارپ
زبان شی گرایی حرفه ای سی شارپ یک زبان قدرتمند برای طراحی نرم افزار به شمار میرود.