منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
الحدث KeyPress ماهو الكود المناسب بحيث اسمح فقط للارقام وعلامة او نقطة واحدة فقط! - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : الحدث KeyPress ماهو الكود المناسب بحيث اسمح فقط للارقام وعلامة او نقطة واحدة فقط! (/showthread.php?tid=34400)



الحدث KeyPress ماهو الكود المناسب بحيث اسمح فقط للارقام وعلامة او نقطة واحدة فقط! - سعود - 20-04-20

السلام عليكم ورحمة الله وبركاته
دالة حساب عدد مرات النقطة
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
لكن كيف اطبق الفكرة
لم اكن متوقع انها تكون غامضة (لاول مرة اتعامل مع الحدث هذا كنت اكتفي بالازرار اللتي اضعها واتحكم بكل شيء)


RE: الحدث KeyPress ماهو الكود المناسب بحيث اسمح فقط للارقام وعلامة او نقطة واحدة فقط! - ابو ليلى - 20-04-20

السلام عليكم و رحمة الله و بركاته
جرب بهذا الشكل:

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 



RE: الحدث KeyPress ماهو الكود المناسب بحيث اسمح فقط للارقام وعلامة او نقطة واحدة فقط! - ابراهيم ايبو - 20-04-20

السلام عليكم ورحمة الله وبركاته
مشكور اخي ابو ليلى سباق دائما ماشاء الله
اخي سعود الغالي والطلب رخيص تفضل هذا الكود

كود :
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



RE: الحدث KeyPress ماهو الكود المناسب بحيث اسمح فقط للارقام وعلامة او نقطة واحدة فقط! - سعود - 20-04-20

بارك الله فيكم جميعا وجزاكم عني كل خير
في الحقيقة كنت اجرب بالسي شارب فصدمت وظننت ان المشكلة بسبب صعوبة السي شارب لكن انصدمت اكثر حين جربت في فيجوال بيسك.
الحمدلله.


RE: الحدث KeyPress ماهو الكود المناسب بحيث اسمح فقط للارقام وعلامة او نقطة واحدة فقط! - ابراهيم ايبو - 20-04-20

اخي سعود والله انو السي شارب اسهل من الفيجوال 
لانه صارم في التعامل الشيء الوحيد الذي ينفر منه رواد الفيجوال هو اقواس البراكيت
ان تمكنت منه فإن ابواب لغات البرمجة كلها مفتوحة امامك  لان الطريقة واحدة واغلب الدوال متشابهة بين اللغات



RE: الحدث KeyPress ماهو الكود المناسب بحيث اسمح فقط للارقام وعلامة او نقطة واحدة فقط! - سعود - 20-04-20

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

بعد الخبر هذا
https://www.youtube.com/watch?v=8ZJ0sl7dOhc
نقلا عن مصدر 
احببت ان اعشق سي شارب مثل فيجوال بيسك.
نقلت الكود للسي شاربSmile
احاول قدر الامكان التاقلم.
لي محاولات فيها والله يعين.


RE: الحدث KeyPress ماهو الكود المناسب بحيث اسمح فقط للارقام وعلامة او نقطة واحدة فقط! - ابو روضة - 20-04-20

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

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