تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تفقيط الأرقام العشرية بالانكليزية
#13
.....

منقول

دالة TextBoxDec وفيها تحديد إدخال عدد منازل الكسر العشري لحد معين لمربع النص

يجب إبطال خاصية اللصق لمربعات النص TextBox التي مخصصة للأرقام عن طريق تغيير الخاصية ShortcutsEnabled إلى False
بالإمكان تجميع أحداث KeyPress لمربعات النص التي لها نفس المهمة في دالة حدث واحدة بعد كلمة Handles
كود :
Public Class Form1

    '' إبطال خاصية اللصق في مربع النص - يفترض تعيينه من خلال خصائص الأداة وليس برمجياً
    'TextBox1.ShortcutsEnabled = False
    'TextBox2.ShortcutsEnabled = False


    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles TextBox1.KeyPress ', TextBox2.KeyPress
        TextBoxDec(sender, e, 2)
    End Sub

    ' دالة يتم فيها تحديد إدخال عدد منازل الكسر العشري لحد معين لمربع النص - يستحسن وضعها في موديول لتعمل في كامل المشروع
    Public Sub TextBoxDec(ByRef sender As Object, ByVal e As KeyPressEventArgs, Optional ByVal dec As Byte = 0)

        ' إذا كان الرمز المدخل أحد رموز التحكم إقبله واخرج
        If Char.IsControl(e.KeyChar) Then
            Return
        End If

        ' إذا كان الرمز المدخل ليس من مجموعة الرموز هذه أرفضه واخرج
        If InStr(IIf(dec > 0, "1234567890.", "1234567890"), e.KeyChar) = 0 Then
            e.Handled = True
            Return
        End If

        ' إذا كان رمز الفاصلة العشرية موجود مسبقا أرفض الرمز المدخل حاليا واخرج
        If e.KeyChar = "." And sender.Text.Contains(".") Then
            e.Handled = True
            Return
        End If

        ' عمل نسخة مؤقته من القيمة الموجودة سابقاً
        Dim tmpText As String = sender.Text

        ' إدراج الرمز المدخل حالياً في مكان المؤشر  في النسخة المؤقتة
        tmpText = tmpText.Insert(sender.SelectionStart, e.KeyChar)

        ' عندما تحتوي النسخة المؤقتة على الفاصلة العشرية
        If tmpText.Contains(".") Then

            ' إذا كان عدد منازل الكسر العشري أكبر من المطلوب أرفض الرمز المدخل واخرج
            If tmpText.Substring(tmpText.IndexOf(".") + 1).Length > dec Then
                e.Handled = True
                Return
            End If

        End If

    End Sub

End Class

.....
الرد }}}
تم الشكر بواسطة: abuzzouz


الردود في هذا الموضوع
RE: تفقيط الأرقام العشرية بالانكليزية - بواسطة vbnet - 22-07-14, 08:37 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تقريب الأعداد العشرية إلى الرقم الأعلى مباشرة العيدروس 2 372 20-01-25, 12:51 AM
آخر رد: العيدروس
  [VB.NET] تحويل لغة الأرقام في فيجوال ستوديو AboBattal 2 392 12-11-24, 08:11 AM
آخر رد: أبو خالد الشكري
  سؤال عن طريقة التعامل مع الفاصلة العشرية المتألق9 2 524 28-09-24, 04:45 PM
آخر رد: المتألق9
Sad مشكلة تقريب الأرقام Sql Server waataanys 2 741 09-05-24, 03:52 PM
آخر رد: تركي الحلواني
  تلوين الخلايا بالداتاجريد حسب الأرقام R G B محمد خيري 4 490 09-05-24, 01:11 AM
آخر رد: أبو خالد الشكري
  خطوط تعريب الأرقام في كريستال ريبورت صالح عبدالله 4 758 16-02-24, 09:28 PM
آخر رد: صالح عبدالله
  [VB.NET] ارغب في كود إلزام المستخدم ادخال الأرقام محصور بعددين loay775 2 563 18-01-24, 05:02 PM
آخر رد: loay775
Question [VB.NET] اسم عمود الأرقام في DataGridView أبو خالد الشكري 6 1,099 03-12-23, 08:01 AM
آخر رد: أبو خالد الشكري
  طريقة تحويل الأرقام إلى حروف Adel27213 2 1,091 18-11-23, 01:40 AM
آخر رد: sniper2030
Sad مشكلة تقريب الأرقام Sql Server waataanys 1 830 13-11-23, 11:39 PM
آخر رد: waataanys

التنقل السريع :


يقوم بقرائة الموضوع: