کنترل NumericUpDown

کنترل NumericUpDown عموماً برای دریافت اعداد از ورودی و محدود کردن کاربران برای وارد کردن مقادیر غیرعددی بکار می‌رود. کنترل NumericUpDown از لحاظ شکل ظاهری شبیه به کنترل TextBox است، با این تفاوت که دکمه‌هایی به شکل پیکان در سمت چپ یا راست آن برای افزایش و یا کاهش مقدار کنترل وجود دارند.
numeric-updown-01
مقدار عددی کنترل NumericUpDown می‌تواند توسط خاصیت Value مورد دستیابی و یا بازیابی قرار گیرد. نوع داده‌ی این خاصیت از نوع Decimal است. در جدول زیر برخی از خواص کنترل NumericUpDown را مشاهده می‌کنید:

خاصیت توضیحات
DecimalPlaces تعداد ارقام اعشار را مشخص می‌کند.
Hexadecimal مشخص می‌کند که کنترل NumericUpDown مقدارش را به وسیله‌ی کدهای HexaDecimal نمایش دهد یا خیر.
Increment گام افزایش یا کاهش مقدار کنترل را مشخص می‌کند.
InterceptArrowKeys اگر مقدار آن برابر با True باشد، شما می‌توانید با استفاده از کلیدهای مکان نمای کیبورد مقدار را افزایش و یا کاهش دهید.
Maximum بالاترین مقداری را که این کنترل می‌تواند در خود جای دهد را مشخص می‌کند.
Minimum کمترین مقداری را که این کنترل می‌تواند در خود جای دهد را مشخص می‌کند.
ThousandsSeperator برای جدا کردن ارقام هر رده (یکان, دهگان, صدگان, …) بکار می‌رود (برای مثال 1,000).
UpDownAlign مشخص می‌کند که دکمه‌های پیکانی در چه مکانی قرار بگیرند. اگر مقدار آن Right باشد، آن‌ها در سمت راست و اگر مقدار آن Left باشد، دکمه‌های پیکانی در سمت چپ کنترل NumericUpDown قرار می‌گیرند.
Value مقدار کنترل NumericUpDown control را مشخص می‌کند.

رویداد پیش فرض کنترل NumericUpDown رویداد ValueChanged است، این رویداد زمانی اتفاق می افتد که مقدار خاصیت Value این کنترل تغییر کند. حال می‌خواهیم یک برنامه بسازیم که کنترل NumericUpDown در آن بکار رفته باشد. یک فرم را ایجاد کرده و نام آنرا به NumericUpDown تغییر دهید. دو برچسب (lable) و دو کنترل NumericUpDown بر روی آن قرار دهید. مقدار خاصیت Text بر چسب‌ها را به “Price” و “Quantity” تغییر دهید. یک دکمه (Button) را به فرم اضافه کرده و عنوان (Caption) آنرا به “Calculate” تغییر دهید. کنترل‌ها را مانند شکل 2 بر روی فرم جایگذاری کنید.
numeric-updown-02
بر اساس جدول زیر خواص کنترل‌های خود را تغییر دهید:

کنترل خاصیت مقدار
button1 Name buttonCalculate
numericUpDown1 Name numericUpDownPrice
Decimal 2
Increment 0.50
Maximum 10000
numericUpDown2 Name numericUpDownQuantity
Maximum 100

مقدار خاصیت Decimal کنترل numericUpDownPrice برابر با 2 قرار داده شده، بنابراین این کنترل می‌تواند 2 رقم اعشار دقت داشته باشد.
مقدار خاصیت Increment نیز برابر با 0.50 قرار داده‌ایم، بنابراین افزایش و یا کاهش مقدار به اندازه 0.50 واحد کم یا زیاد می‌شود.
مقدار خاصیت Maximum برابر 10000 است، پس قیمت (Price) به آن محدود می‌شود و کاربر نمی‌تواند رقمی بالاتر از آنرا وارد کند.
از آنجاییکه نهایت مقدار کنترل numericUpDownQuantity را در جدول بالا 100 قرار داده‌ایم، در نتیجه شما می‌توانید فقط مقادیری نهایتاً تا 100 را در آن وارد کنید. بر روی دکمه (Button) دوبار کلیک کنید تا یک کنترل کننده‌ی رویداد Click به آن اضافه شود. کدهای زیر را به آن اضافه کنید:

private void buttonCalculate_Click(object sender, EventArgs e)
{
    decimal price = numericUpDownPrice.Value;
    int quantity = (int)numericUpDownQuantity.Value;
    decimal total;

    total = price * quantity;

    MessageBox.Show(String.Format("The total price is {0:C}", total));
}

برنامه را اجرا کنید. مقدار کنترل numericUpDownPrice را به وسیله‌ی دکمه‌های پیکانی کاهش یا افزایش دهید. مشاهده می‌کنید مقدار آن به اندازه 0.50 واحد افزایش و یا کاهش پیدا می‌کند.
numeric-updown-03
بر روی دکمه‌ی Calculate کلی کنید، این دکمه با ضرب کردن مقدار Quantity در Price، قیمت کل را بدست می‌آورد.
numeric-updown-04