تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
جعل المستخدم لا يستطيع كتابة اكثر من علامة عشرية في مربع النص
#1
السادة الافاضل

كيف اجعل المستخدم لا يستطيع كتابة اكثر من علامة عشرية في مربع النص

وطبعا لا يستطيع كتابة حروف

شكرا لتعاونكم معنا
الرد }}}}
تم الشكر بواسطة:
#2
السلام عليكم...

استعمل الكود التالي في الحدث KeyPress لمربع النص:

كود :
If Not Char.IsControl(e.KeyChar) Then
            If e.KeyChar = "." Then
                If TextBox1.Text.IndexOf(".") <> -1 Then
                    If TextBox1.SelectionLength > 0 Then
                        If TextBox1.SelectedText.IndexOf(".") = -1 Then
                            e.Handled = True
                        End If
                    Else
                        e.Handled = True
                    End If
                End If
            ElseIf "0123456789".IndexOf(e.KeyChar) = -1 Then
                e.Handled = True
            End If
        End If

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}}
تم الشكر بواسطة: الشاكي لله , محمود رغمان , ربيع
#3
اجابة ممتازة

واستكمال الموضوع
كيف يتم عمل دالة function حتي لا اكتب كل هذا الكود داخل كل مربع نص
شكرا
الرد }}}}
تم الشكر بواسطة:
#4
السلام عليكم...

في الـ NET. الأمر بسيط:

1. اكتب الكود المذكور أعلاه في الحدث KeyPress لأحد مربعات النص المعنية مع بعض التعديل:

كود :
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress, TextBox3.KeyPress
        Dim MyBox As TextBox = sender    ' استعمال متغير ليشير إلى مربع النص صاحب الحدث و استعماله في الكود أدناه

        If Not Char.IsControl(e.KeyChar) Then
            If e.KeyChar = "." Then
                If MyBox.Text.IndexOf(".") <> -1 Then
                    If MyBox.SelectionLength > 0 Then
                        If MyBox.SelectedText.IndexOf(".") = -1 Then
                            e.Handled = True
                        End If
                    Else
                        e.Handled = True
                    End If
                End If
            ElseIf "0123456789".IndexOf(e.KeyChar) = -1 Then
                e.Handled = True
            End If
        End If
    End Sub

* لاحظ أننا عرفنا المتغير MyBox و أسندنا إليه البارامتر sender الذي يمثل مربع النص صاحب الحدث، ثم استعملنا هذا المتغير (MyBox) في الكود.

2. في الـ Form اختر مربع النص الآخر، ثم في نافذة الخصائص بدل إلى الأحداث (Events) و في خانة الحدث KeyPress اختر نفس الإجراء الذي كتبته لمربع النص الأول. ستلاحظ في الكود أن إجراء الحدث KeyPress الذي كتبته أصبح يشير إلى مربعي النص:

كود :
Handles TextBox1.KeyPress, TextBox2.KeyPress

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}}
تم الشكر بواسطة: ربيع
#5
تمام يا باشا
اكيد استفدنا
ولكن هذا علي مستوي الفورم
الا يوجد فنكشن علي مستوي المشروع
شكرا
الرد }}}}
تم الشكر بواسطة:
#6
السلام عليكم...

بلى يوجد (لعيونك)...

1. أنشئ Module (في ملف مستقل أو في بداية ملف كود الـ Form الرئيسية - قبل تعريف الـ Class).

اكتب الإجراء التالي في الـ Module. لاحظ أنه معرف كإجراء عام (Public) و كذلك - من المهم - أن له نفس اسم و عدد و نوع بارامترات الإجراء KeyPress:

كود :
Public Module MyRoutines

    Public Sub MyTextBoxKeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        Dim MyBox As TextBox = sender

        If Not Char.IsControl(e.KeyChar) Then
            If e.KeyChar = "." Then
                If MyBox.Text.IndexOf(".") <> -1 Then
                    If MyBox.SelectionLength > 0 Then
                        If MyBox.SelectedText.IndexOf(".") = -1 Then
                            e.Handled = True
                        End If
                    Else
                        e.Handled = True
                    End If
                End If
            ElseIf "0123456789".IndexOf(e.KeyChar) = -1 Then
                e.Handled = True
            End If
        End If
    End Sub

End Module

2. في أي Form يوجد بها مربع (أو مربعات) نص تريد ربطها بنفس الإجراء، استخدم السطر التالي في الحدث Load للـ Form:

كود :
AddHandler TextBox1.KeyPress, AddressOf MyTextBoxKeyPress

يعني استعمال عبارة AddHandler متبوعة باسم مربع النص و اسم الحدث ثم كلمة AddressOf ثم اسم الإجراء العام الذي عرفناه في الـ Module.

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}}
تم الشكر بواسطة: الشاكي لله , محمود رغمان , kslawy , ربيع
#7
الاستاذ الفاضل
لي مشاركة بخصوص تنفيذ امر في فورم اخر
برجاء الرد عليها
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] مشكلة في كتابة الكود تظهر علامة غريبة وتستبدل حرف بحرف ali.alfoly 4 63 منذ 2 ساعة مضت
آخر رد: amgad525
  [سؤال] مشكلة في كتابة عربي مع انجليزي في نص واحد ali.alfoly 2 87 أمس, 08:05 AM
آخر رد: ali.alfoly
  مشكلة كتابة نص في text box kofa 3 41 08-12-16, 09:24 PM
آخر رد: kofa
Information [VB.NET] مساعده في الفيجوال بيسك هل اقدر اسوي اكثر من فورم a_abdullah 4 100 07-12-16, 02:39 PM
آخر رد: a_abdullah
  [سؤال] تغير لون كتابة التيكست بوكس ؟ Mido9 5 2,403 30-11-16, 10:16 PM
آخر رد: omferas
  مطلوب تعديلات في هذه الاكواد بحيث تكون فعاله اكثر معتز الجازوي 2 83 28-11-16, 05:36 PM
آخر رد: معتز الجازوي
  كيفيه تشغيل الفورم بالتاريخ الذي يحدده المستخدم ddemed 5 137 23-11-16, 10:12 PM
آخر رد: السرور
  [سؤال] حفظ النص المكتوب داخل listBox فارس جراح 7 125 15-11-16, 04:00 AM
آخر رد: LoveVb
  [سؤال] التعامل مع الزر الموجود في DataGrideView هل يستطيع حذف الصف الذي به البتن thevirus 1 109 10-11-16, 09:20 PM
آخر رد: ابراهيم النعيمي
  [سؤال] جعل المستخدم يحدد عنوان اي بي السيرفر الذي عليه قاعدة البيانات thevirus 0 58 04-11-16, 10:38 AM
آخر رد: thevirus

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


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