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

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

عندي تكست بوكس وعايز ادخل فيه ارقام فقط ولكن عند الضغط علي  paste من قائمه كليك يمين او من  ctrl+v يتحقق ويفلتر الارقام من النصوص في الحافظه قبل عمل paste
وعليكم السلام 
تفضل للصق الارقام فقط 

كود :
  Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
       TextBox1.Text = System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, "[^\d]", "")    'Removes all character except numbers
       TextBox1.Select(TextBox1.Text.Length + 1, 1)    'To bring the textbox focus to the right
   End Sub
شكرا اخي ولكن ممكن شرح الكود وما معني [^\d]" ؟ وكيفيه عمل العكس بحيث يتم لصق حروف فقط؟
(20-09-21, 04:22 PM)حسن الجلب كتب : [ -> ]شكرا اخي ولكن ممكن شرح الكود وما معني [^\d]" ؟ وكيفيه عمل العكس بحيث يتم لصق حروف فقط؟
اهلاً اخي
[^\d] تدل على فلترة الاحرف من الارقام قبل اللصق
  وسوف اضع لك كود اخر يسد جميع احتياجاتك من حروف او ارقام وسهل الفهم 

كود :
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
       Dim ThisTextBox As TextBox = DirectCast(sender, TextBox)
       Dim CheckString As String = "0123456789"  'يتم تحديد المدخلات المراد ادخالها اذا كانت ارقام.
       'Dim CheckString As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"  'يتم تحديد المدخلات المراد ادخالها اذا كانت حروف.
       Dim theText As String = ThisTextBox.Text
       Dim Letter As String
       Dim SelectionIndex As Integer = ThisTextBox.SelectionStart
       Dim Change As Integer
       For x As Integer = 0 To ThisTextBox.Text.Length - 1
           Letter = ThisTextBox.Text.Substring(x, 1)
           If CheckString.Contains(Letter) = False Then
               theText = theText.Replace(Letter, String.Empty)
               Change = 1
           End If
       Next
       ThisTextBox.Text = theText
       ThisTextBox.Select(SelectionIndex - Change, 0)
   End Sub