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

نسخة كاملة : الحدث KeyPress ماهو الكود المناسب بحيث اسمح فقط للارقام وعلامة او نقطة واحدة فقط!
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته
دالة حساب عدد مرات النقطة
PHP كود :
Function pcount(txt As String) As Integer
        Dim i 
As Integer 0
        For Each h 
As String In txt
            If h 
"." Then
                i 
+= 1
            End 
If
 
       Next
        Return i

    End 
Function 
الكود التالي يمنع تكرار النقطة
PHP كود :
Private Sub TextBox1_KeyPress(sender As System.ObjectAs System.Windows.Forms.KeyPressEventArgsHandles TextBox1.KeyPress
        If 
(e.KeyChar "." And pcount(TextBox1.Text) <> 0Then
            e
.Handled True
        End 
If
 
   End Sub 
ماهو التعديل المناسب بحيث اسمح فقط للارقام وعلامة او نقطة واحدة فقط!
اعرف char.isnumber  و  Isdigit و  isnumeric
لكن كيف اطبق الفكرة
لم اكن متوقع انها تكون غامضة (لاول مرة اتعامل مع الحدث هذا كنت اكتفي بالازرار اللتي اضعها واتحكم بكل شيء)
السلام عليكم و رحمة الله و بركاته
جرب بهذا الشكل:

PHP كود :
   Private Sub TxtBox1_KeyPress(sender As ObjectAs KeyPressEventArgsHandles TxtBox1.KeyPress

        If Not Char
.IsControl(e.KeyCharAndAlso Not Char.IsDigit(e.KeyCharAndAlso (e.KeyChar <> "."cThen
            e
.Handled True
        End 
If

 
       If (e.KeyChar "."cAndAlso ((TryCast(senderTextBox)).Text.IndexOf("."c) > -1Then
            e
.Handled True
        End 
If
 
   End Sub 
السلام عليكم ورحمة الله وبركاته
مشكور اخي ابو ليلى سباق دائما ماشاء الله
اخي سعود الغالي والطلب رخيص تفضل هذا الكود

كود :
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress

       If sender.SelectionLength = sender.Text.Length Then sender.Clear()
       If Not (Char.IsControl(e.KeyChar) Or Char.IsNumber(e.KeyChar) Or e.KeyChar = "." And Not sender.Text.Contains(".")) Then e.Handled = True
       If sender.Text.Length = 0 And e.KeyChar = "." Then sender.Text = "0." : sender.SelectionStart = sender.Text.Length : e.Handled = True


   End Sub
بارك الله فيكم جميعا وجزاكم عني كل خير
في الحقيقة كنت اجرب بالسي شارب فصدمت وظننت ان المشكلة بسبب صعوبة السي شارب لكن انصدمت اكثر حين جربت في فيجوال بيسك.
الحمدلله.
اخي سعود والله انو السي شارب اسهل من الفيجوال 
لانه صارم في التعامل الشيء الوحيد الذي ينفر منه رواد الفيجوال هو اقواس البراكيت
ان تمكنت منه فإن ابواب لغات البرمجة كلها مفتوحة امامك  لان الطريقة واحدة واغلب الدوال متشابهة بين اللغات
(20-04-20, 08:26 PM)ابراهيم ايبو كتب : [ -> ]
اخي سعود والله انو السي شارب اسهل من الفيجوال 
لانه صارم في التعامل الشيء الوحيد الذي ينفر منه رواد الفيجوال هو اقواس البراكيت
ان تمكنت منه فإن ابواب لغات البرمجة كلها مفتوحة امامك  لان الطريقة واحدة واغلب الدوال متشابهة بين اللغات

بعد الخبر هذا
https://www.youtube.com/watch?v=8ZJ0sl7dOhc
نقلا عن مصدر 
احببت ان اعشق سي شارب مثل فيجوال بيسك.
نقلت الكود للسي شاربSmile
احاول قدر الامكان التاقلم.
لي محاولات فيها والله يعين.
(20-04-20, 08:26 PM)ابراهيم ايبو كتب : [ -> ]
اخي سعود والله انو السي شارب اسهل من الفيجوال 
لانه صارم في التعامل الشيء الوحيد الذي ينفر منه رواد الفيجوال هو اقواس البراكيت
ان تمكنت منه فإن ابواب لغات البرمجة كلها مفتوحة امامك  لان الطريقة واحدة واغلب الدوال متشابهة بين اللغات

لكنى أعتقد أن لغة VB.NET أجمل لآنه يكون تركيزك على الوظيفة البرمجية بدون أن تشغل بالك بالأقواس والنقاط والرموز التي تجعل أكواد باقي تكملة برنامجك يبدو كفوازير رمضان أو كأنك تجلس بمسابقة والتى بطبيعة الحال تضيع الكثير من الوقت والجهد بسبب نسيان قوس هنا أو علامة منقوطة هناك.... وهذا رأيى أنا شخصياً لكن لعل هناك أشياء لم أأخذ بالى منها...