منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كود لكتابة اربع ارقام او حروف فى التكيست فقط ثم الانتقال للتكيست التالى
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كود بسيط للتحكم فى محتويات التيكست بوكس 
بحيث يكون عدد 4 ارقام او حروف فى التكست فقط ثم الانتقال تلقائى الى التيكست التالى

 Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
        If Len(TextBox1.Text) >= 4 Then
            Dim s() As String = (Me.TextBox1.Text.Trim).Split
            TextBox1.Text = s(s.Length - 1)(0) & s(s.Length - 1)(1) & s(s.Length - 1)(2) & s(s.Length - 1)(3)
            TextBox2.Select()
        End If
    End Sub
جميل عاشت الايدي
ممكن شرح الكود
Dim s() As String = (Me.TextBox1.Text.Trim).Split
TextBox1.Text = s(s.Length - 1)(0) & s(s.Length - 1)(1) & s(s.Length - 1)(2) & s(s.Length - 1)(3
وما هي اهميته
السلام عليكم...

المعذرة على التدخل، و لكن لا تحتاج إلى كل ذلك الكود.

فتحديد الحد الأقصى لطول الإدخال في مريع النص لا يحتاج إلى كود، و إنما فقط ضبط الخاصية MaxLength على الحد الذي تريده (4 في هذا المثال).
أما الانتقال إلى المكون أو العنصر التالي في النافذة فمن الأفضل عدم تحديده بالاسم لأن ترتيب المكونات قد يتغير أثناء التصميم فتضطر إلى تغيير الكود.

مع ضبط الخاصية MaxLength على الحد الذي تريده، كل ما تحتاج إليه هو سطر واحد:

كود :
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
   If TextBox1.Text.Length = TextBox1.MaxLength Then Me.SelectNextControl(TextBox1, True, True, True, True)
End Sub

* لاحظ أيضاً أن هذا الكود سيعمل دون تعديل إذا قمت بتغيير قيمة الخاصية MaxLength إلى أي قيمة أخرى غير الـ 4.

نرجو الاستفادة و السلام.
موضوع رائع شكراً اخي walkady

و الشكر موصول للأخ ناجي إبراهيم

بارك الله فيكم