تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة ::: NumericUpDown
#1
الأداة NumericUpDown :

أداة جميلة فى ادخال الأرقام بحيث تحصر المستخدم بان يقوم بالادخال فى اطار محدد

سنتعرف على أهم خصائصها بعد أن ندرجها من قائمة الأدوات Tool Box

نقوم بادراجها ونذهب إلى نافذة خصائص الأداة :

هناك خاصيتان مسئولتان عن بداية الادخال ونهاية الادخال وهما :

Minimum : وهو أقل رقم يمكن ادخاله

Maximum : أكبر رقم يمكن ادخاله

وهذا يتم تعديله من نافذة الخصائص

أو بالكود من هذه الخصائص للأداة :
كود :
NumericUpDown1.Minimum = -100

    NumericUpDown1.Maximum = 100
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة:
#2
لقد وضعنا حد اعلى أدنى للأرقام - بحيث أن المستخدم يختار من : إلى

هل يمكن أن نجعل الأرقام بناء على تسلسل معين أو بمعنى زيادة معينة

نعم يمكن ذلك فبعد أن تحدد الحد الأعلى والحد الأدنى - تقوم بتحديد Increment وهى الخاصية المسئولة عن معدل الزيادة للأرقام

ونقوم بتعديل من نافذة الخصائص حيث القيمة الافتراضية هى 1

أو بالكود من نفس الخاصية :
كود :
[/color]NumericUpDown1.Increment = 5
[color=#0000ff]
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة:
#3
يسال أحد الأخوة ويقول - نريد أن ندخل قيم بها أرقام عشرية

نعم ذلك متاح لكن بشرط - يجب تحديد عدد الخانات العشرية

وذلك من الخاصية DecimalPlaces من نافذة الخصائص حيث القيمة الافتراضية 0

وتضع عدد الخانات العشرية المطلوبة

كود :
[align=left][color=#0000ff][/color]' حددنا عدد الخانات

NumericUpDown1.DecimalPlaces = 2

' ارسل قيمة رقمية بها رقم عشرى من عدد 2 خانة

NumericUpDown1.Value = 3.15[/align]
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة:
#4
ماذا لو أردت أن استخدم الأداة فى أرقام تتعدى الآلاف وأريد أن تقوم الأداة بوضع فاصلة بعد الألف
للرقم الموجود

ذلك من الخاصية ThousandsSeparator بنجعل قيمتها تساوى True من نافذة الخاصائص

واليك المثال اجعل اقل رقم = 1 واكبر رقم = 100000

واجعل الخاصية ThousandsSeparator = True


أو عن طريق الكود :

كود :
[align=left][COLOR=#0000ff]NumericUpDown1.Minimum = 0
NumericUpDown1.Maximum = 100000
NumericUpDown1.ThousandsSeparator = True
NumericUpDown1.Value = 10000[/COLOR][/align]
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة:
#5
تتيح لك هذه الأداة أيضاً أن تظهر الأرقام المدخلة فى صورة Hexadecimal


كل ما عليك أنه فى نافذة الخصائص تجعل هذه الخاصية Hexadecimal = True


ومثال بالكود :

كود :
[align=left][COLOR=#0000ff]NumericUpDown1.Minimum = 0
NumericUpDown1.Maximum = 1000
NumericUpDown1.Hexadecimal = True
NumericUpDown1.Value = 255[/COLOR][/align]
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة:
#6
الآن سنكتب تلميحة لنجعل الاداة أكثر حيوية

ولنفرض أنك وضعت فى الأدة أقل = -100 وأكبر حد = 100

تريد ان المستخدم عندما يضغط PageUp يقوم الرقم بالزيادة بمعدل 5

وعندما يضغط PageDown يقوم النقصان بمعدل 5


لنقوم بالمثال التالي :


سنقوم بتعريف ثابت ونضغه فى القسم العام للفورم
كود :
Private Const intStep As Integer = 5

فى حدث Load للفورم ينقوم بضبط خصائص الأداة - هذا لو انت لم تضبطها من نافذة الخصائص

كود :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        NumericUpDown1.Value = 0
        NumericUpDown1.Increment = 1
        NumericUpDown1.Minimum = -100
        NumericUpDown1.Maximum = 100
    End Sub

فى حدث KeyDown للأداة سنكتب الكود التالي :

كود :
Private Sub NumericUpDown1_KeyDown(ByVal sender As System.Object, _
        ByVal e As System.Windows.Forms.KeyEventArgs) _
        Handles NumericUpDown1.KeyDown

        ' فى حالة PageUp
        If e.KeyCode = Keys.PageUp Then

            ' فى حالة لو الحد الاعلى - الثابت أكبر أو يساوى القيمة الحالية
            If NumericUpDown1.Maximum - intStep >= NumericUpDown1.Value Then

                'لو تحقق الشرط سيقوم بتنفيذ الأمر وهو الزيادة بمعدل الثابت
                'وهذا الشرط ضرورى بحيث لا يعطى خطأ - بتعدى الحد الأعلى
                NumericUpDown1.Value = NumericUpDown1.Value + intStep
            End If

        ElseIf e.KeyCode = Keys.PageDown Then      ' فى حالة PageDown

            ' فى حالة لو الحد الأدني + الثابت أصغر أو يساوى القيمة الحالية

            If NumericUpDown1.Minimum + intStep <= NumericUpDown1.Value Then

                'لو تحقق الشرط سيقوم بتنفيذ الأمر وهو النقصان بمعدل الثابت
                'وهذا الشرط ضرورى بحيث لا يعطى خطأ - بتعدى الحد الأدني

                NumericUpDown1.Value = NumericUpDown1.Value - intStep
            End If

        End If

    End Sub

الكود واضح ومعالج فى حالة أن عملية الزيادة او النقصان تتخطى الحد الاعلى والأدنى
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة:
#7
سهى أعلى وأسفل المخصوصان بالزيادة والنقصان موجودان بيمين الأداة - لنفرض أنك تريدهم باليسار

يكون ذلك عن طريق الخاصية UpDownAlign من نافذة الخصائص


كود :
[align=left]NumericUpDown1.UpDownAlign = LeftRightAlignment.Left[/align]


==========================================



ماذا لو أردت أن يصنع زرين يقوموا بوظيقة سهى أعلى وأسفل المخصوصان بالزيادة والنقصان


ضع زرين أمر Button واجعل احدهم للزيادة والاخر للنقصان


لتشغيل زر الزيادة

كود :
[align=left] NumericUpDown1.UpButton()[/align]

لتشغيل زر النقصان

كود :
[align=left]NumericUpDown1.DownButton()[/align]
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم