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

نسخة كاملة : اريد كود يعطيني عدد مرات تكرار حرف معين ضمن نص موجود في textbox
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

عندي تيكست بوكس يسمح بكتابة الارقام فقط 

لكن اذا ادخل المستخدم للبرنامج القيمة التالية مثلا 9999..99 

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

اريد كود يعيد عدد مرات تكرار النقطة اذا كان اكبر من واحد تظهر رسالة 


شكرا

الطلب الثاني لو سمحتم تعديل الكود التالي ليسمح بكتابة النقطة

If Not Char.IsNumber(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then e.Handled = True
وعليكم السلام 
الكود التالي لمنع كتابة اي شيء في التيكست بوكس باستثناء الارقام والفاصلة بنوعيها وطبعا انت تستطيع التعديل عليه ويجب ان يكون في حدث KEYPRESS
كود :
 If (e.KeyChar < "0" OrElse e.KeyChar > "9") AndAlso e.KeyChar <> ControlChars.Back AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> "," Then
          e.Handled = True
      End If
  

الكود التالي لمعرفة تكرار حرف معين وفي مثالي هذا معرفة تكرار الفاصلة . واذا كانت مكررة يعطي رسالة تنبيه

كود :
dim a as integer
    For i As Integer = 0 To TextBox1.TextLength - 1
           If TextBox1.Text.Chars(i) = "." Then
               a += 1
           End If
       Next
       If a > 2 Then
           MsgBox("الفاصلة مكررة")
       End If
شكرا جزيلا وفقك الله

ان اضع الكود التالي في Keypress

Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
       If KeyAscii = 13 Then
           Button7.Focus()
       End If

وعندما قمت بلصق الكود الذي اعطيتني اياه تحته  ظهر خط احمر تحت حرف e
فقمت بوضع الكود الذي اعطيتني اياه مشكرا في TextChanged
هل يمكن جمع الكودين معا

شكرا وفقك الله
انا لم اعطك كود واحد بل كودين
الكود الاول يجب ان يكون في الحدث keypress
اما الكود الثاني فضعه في الحدث الذي تراه انت مناسبا انا من رأيي ضعه في حدث فقدان التركيزlostfocus
تمام استاذي لكني استخدم Keypress مسبقا وقد وضعت فيه الكود


Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
      If KeyAscii = 13 Then
          Button7.Focus()
      End If

وظيفته الانتقال لخانة اخرى عند الضغط على زر الانتر

وبعد اضافة كودك اول اصبح الكود الكامل في Keypress



Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
      If KeyAscii = 13 Then
          Button7.Focus()
      End If

If (e.KeyChar < "0" OrElse e.KeyChar > "9") AndAlso e.KeyChar <> ControlChars.Back AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> "," Then
          e.Handled = True
      End If

عندها ظهر الخطأ
انا جربت ان اضع كودي وكودك في نفس الحدث مع تعديل بسيط على كودك ونجح الامر بدون مشاكل
كود :
 Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress

       If (e.KeyChar < "0" OrElse e.KeyChar > "9") AndAlso e.KeyChar <> ControlChars.Back AndAlso e.KeyChar <> "." AndAlso e.KeyChar <> "," Then
           e.Handled = True
       End If

       Dim KeyAscii As Short = Asc(e.KeyChar)
       If KeyAscii = 13 Then
           Button1.Focus()
       End If
   End Sub
تمام وفقك الله وزادك الله علما
اهلا وسهلا ... على الرحب والسعة