منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
التأكد من وجود أرقام فقط فى string - نسخة قابلة للطباعة

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



التأكد من وجود أرقام فقط فى string - heem1986 - 06-01-25

لدية كود به مربع أدخال مبلغ وأريد أن يكون المبلغ لا يشمل أى حروف أو + أو - أو / أو * أو مسافة أو أى شيئ بخلاف الأرقام والعلامة العشرية فقط 

الكود 
Dim smasseg As String

smasseg = XtraInputBox.Show("المبلغ المحصل", "تسليم نقدى", GridView2.GetFocusedRowCellValue("mtlob"))
If smasseg <> "" Then
    If smasseg = 0 And GridView2.GetFocusedRowCellValue("mdfoa") > 0 Then


        If XtraForm1.d86.Checked = False Then
            XtraMessageBox.Show("غير مصرح لك", "خطاء", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End If


        Dim sql1 = "Select * from syana_add where sid=N'" & (GridView2.GetFocusedRowCellValue("sid")) & "'"
        Dim adp1 As New SqlDataAdapter(sql1, sqlconn)
        Dim ds1 As New DataSet
        adp1.Fill(ds1)
        Dim dt1 = ds1.Tables(0)
        If dt1.Rows.Count > 0 Then
            Dim dr1 = dt1.Rows(0)
            '========= بيانات اساسية============
            dr1!gehazan = " قام ( " & XtraForm1.user_name.Text & " )" & "  بتسليم الجهاز إلى العميل " & GridView2.GetFocusedRowCellValue("sname") &
            dr1!smsaol = XtraForm1.user_name.Text

            dr1!mdfoa = Format(Val(dr1!mdfoa) + Val(smasseg), "0.00")
            dr1!mtlob = Format(Val(dr1!total_fatora) - Val(dr1!ksm) - Val(dr1!mdfoa), "0.00")
            dr1!on_out = "تم التسليم"
            dr1!dateout = Now.ToString("yyyy/MM/dd")
            dr1!timeout = Now.ToString("hh:mm")
            dr1!noa_thsel = "نقداً بالكامل"
            dr1!msaol_thsel = XtraForm1.user_name.Text
            dr1!msaol_tslem = XtraForm1.user_name.Text
            dr1!mdfoa_sabk = dr1!mdfoa
            dr1!tslem = 2
            dr1!estlam_tslem = "تم التسليم"
            dr1!hala_tslem = "تم التسليم"
            dr1!twasel = False
            dr1!tzker_twasel = False
            dr1!phone_kta = False
            dr1!rbh_ksara = Format(Val(dr1!mdfoa) - Val(dr1!msrofat), "0.00")
            If dr1!rbh_ksara > 0 Then
                dr1!ntega_nshat = "ربح"
            ElseIf dr1!rbh_ksara = 0 Then
                dr1!ntega_nshat = "توازن"
            ElseIf dr1!rbh_ksara < 0 Then
                dr1!ntega_nshat = "خسارة"
            End If
            Dim n = Format(Val(dr1!rbh_ksara) / Val(dr1!total_fatora), "0.00")

            dr1!nsba_rbh = Format(Val(n) * 100, "0")


            '============================

            Dim cmd1 As New SqlCommandBuilder(adp1)
            adp1.Update(dt1)
        End If

        ''============حفظ الحركة=============
        set_hrka(Now.Date, XtraForm1.store.Text, GridView2.GetFocusedRowCellValue("sid"), Now.Year, GridView2.GetFocusedRowCellValue("sname"), GridView2.GetFocusedRowCellValue("sphone"), GridView2.GetFocusedRowCellValue("snoa"), GridView2.GetFocusedRowCellValue("smarka"), Now, "تم تسليم الجهاز بواسطة    ( " & XtraForm1.user_name.Text & " )   ", XtraForm1.user_name.Text, "الصيانة")
        ''============تحديث البيانات=============
        fill_up_show()
        ''============أرسال الأشعارات=============
        set_ashar(Now, XtraForm1.store.Text, XtraForm1.user_name.Text, "الصيانة", "أشعار", "تم تسليم الجهاز الخاص بـ" & GridView2.GetFocusedRowCellValue("sname") & "   بواسطة  " & XtraForm1.user_name.Text & "", False, False, False)

        My.Computer.Audio.Play(My.Resources.suc, AudioPlayMode.Background)

        XtraMessageBox.Show("تم تسليم الجهاز ")


    ElseIf smasseg > 0 Then

        If XtraForm1.d86.Checked = False Then
            XtraMessageBox.Show("غير مصرح لك", "خطاء", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End If

        Dim adp = New SqlDataAdapter("select * from treasury_name where treasury_name=N'" & (XtraForm1.type_pay.Text) & "'", sqlconn)
        ds = New DataSet
        adp.Fill(ds)
        Dim dt = ds.Tables(0)
        Dim dr6 = dt.Rows(0)
        If smasseg < GridView2.GetFocusedRowCellValue("mtlob") Then
            XtraMessageBox.Show("لا يمكن تحصيل مبلغ أقل من المطلوب", "خطاء", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End If


        treasury_pay(XtraForm1.type_pay.Text, "الصيانة", Now.ToString("yyyy/MM/dd"), Now.ToString("hh:mmConfuseds:tt"), "استلام نقدية عن جهاز رقم " & GridView2.GetFocusedRowCellValue("sid") & GridView2.GetFocusedRowCellValue("sname"), XtraForm1.user_name.Text, Val(smasseg), 0, Val(dr6!balace) + Val(smasseg), GridView2.GetFocusedRowCellValue("sid"))

        dr6!balace = Val(dr6!balace) + Val(smasseg)

        Dim cmd6 As New SqlCommandBuilder(adp)
        adp.Update(dt)


        Dim sql1 = "Select * from syana_add where sid=N'" & (GridView2.GetFocusedRowCellValue("sid")) & "'"
        Dim adp1 As New SqlDataAdapter(sql1, sqlconn)
        Dim ds1 As New DataSet
        adp1.Fill(ds1)
        Dim dt1 = ds1.Tables(0)
        If dt1.Rows.Count > 0 Then
            Dim dr1 = dt1.Rows(0)
            '========= بيانات اساسية============
            dr1!gehazan = " قام ( " & XtraForm1.user_name.Text & " )" & "  تسليم الجهاز مقابل مبلغ قيمته " & smasseg & " جنيه  "
            dr1!smsaol = XtraForm1.user_name.Text

            dr1!mdfoa = Format(Val(dr1!mdfoa) + Val(smasseg), "0.00")
            dr1!mtlob = Format(Val(dr1!total_fatora) - Val(dr1!ksm) - Val(dr1!mdfoa), "0.00")
            dr1!on_out = "تم التسليم"
            dr1!dateout = Now.Date
            dr1!timeout = Now.ToString("hh:mm")
            dr1!noa_thsel = "نقداً بالكامل"
            dr1!msaol_thsel = XtraForm1.user_name.Text
            dr1!msaol_tslem = XtraForm1.user_name.Text
            dr1!mdfoa_sabk = dr1!mdfoa
            dr1!tslem = 2
            dr1!estlam_tslem = "تم التسليم"
            dr1!hala_tslem = "تم التسليم"
            dr1!twasel = False
            dr1!tzker_twasel = False
            dr1!phone_kta = False
            dr1!rbh_ksara = Format(Val(dr1!mdfoa) - Val(dr1!msrofat), "0.00")
            If dr1!rbh_ksara > 0 Then
                dr1!ntega_nshat = "ربح"
            ElseIf dr1!rbh_ksara = 0 Then
                dr1!ntega_nshat = "توازن"
            ElseIf dr1!rbh_ksara < 0 Then
                dr1!ntega_nshat = "خسارة"
            End If
            Dim n = Format(Val(dr1!rbh_ksara) / Val(dr1!total_fatora), "0.00")

            dr1!nsba_rbh = Format(Val(n) * 100, "0")


            '============================

            Dim cmd1 As New SqlCommandBuilder(adp1)
            adp1.Update(dt1)
        End If

        ''============حفظ الحركة=============
        set_hrka(Now.Date, XtraForm1.store.Text, GridView2.GetFocusedRowCellValue("sid"), Now.Year, GridView2.GetFocusedRowCellValue("sname"), GridView2.GetFocusedRowCellValue("sphone"), GridView2.GetFocusedRowCellValue("snoa"), GridView2.GetFocusedRowCellValue("smarka"), Now, "تم تسليم الجهاز نقدى بواسطة    ( " & XtraForm1.user_name.Text & " )   ", XtraForm1.user_name.Text, "الصيانة")
        ''============تحديث البيانات=============
        fill_up_show()
        ''============أرسال الأشعارات=============
        set_ashar(Now, XtraForm1.store.Text, XtraForm1.user_name.Text, "الصيانة", "أشعار", "تم تسليم الجهاز الخاص بـ" & GridView2.GetFocusedRowCellValue("sname") & "  نقدى بواسطة  " & XtraForm1.user_name.Text & "", False, False, False)




        My.Computer.Audio.Play(My.Resources.suc, AudioPlayMode.Background)
        XtraMessageBox.Show(" تم تسليم الجهاز وتحصيل مبلغ " & smasseg & " جنيه ")


    End If
    sr_Click(Nothing, Nothing)

End If


مرفق صورة بالمرفقات توضع المشكلة


RE: التأكد من وجود أرقام فقط فى string - aljzazy - 06-01-25

للتأكد من أن الإدخال في مربع النص (TextBox) يحتوي فقط على أرقام والعلامة العشرية (.) في فيجوال بيسك، يمكنك استخدام الحدث
كود :
KeyPress
للتحقق من كل حرف يتم إدخاله.
إليك الكود:
vb
نسخ الكود
كود :
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
   ' السماح بالأرقام فقط والعلامة العشرية
   If Not Char.IsDigit(e.KeyChar) AndAlso e.KeyChar <> "." AndAlso Not Char.IsControl(e.KeyChar) Then
       e.Handled = True ' تجاهل الأحرف غير المسموح بها
   End If

   ' السماح بعلامة عشرية واحدة فقط
   If e.KeyChar = "." AndAlso TextBox1.Text.Contains(".") Then
       e.Handled = True
   End If
End Sub



RE: التأكد من وجود أرقام فقط فى string - heem1986 - 06-01-25

السلام عليكم كنت محتاج التحقق بعد كتابة النص وليس عند الضغط على المفتاح


RE: التأكد من وجود أرقام فقط فى string - أبو خالد الشكري - 07-01-25

إذا كنت تريد نت محتاج التحقق بعد كتابة النص فعليك وضع زر جديد في الفورم ثم انقر عليه مرتين واكتب داخله الكود الذي أعطاك إياه الأخ aljzazy