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

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

الكود 
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


مرفق صورة بالمرفقات توضع المشكلة
للتأكد من أن الإدخال في مربع النص (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
السلام عليكم كنت محتاج التحقق بعد كتابة النص وليس عند الضغط على المفتاح
إذا كنت تريد نت محتاج التحقق بعد كتابة النص فعليك وضع زر جديد في الفورم ثم انقر عليه مرتين واكتب داخله الكود الذي أعطاك إياه الأخ aljzazy