22-07-14, 08:37 AM
.....
منقول
دالة TextBoxDec وفيها تحديد إدخال عدد منازل الكسر العشري لحد معين لمربع النص
يجب إبطال خاصية اللصق لمربعات النص TextBox التي مخصصة للأرقام عن طريق تغيير الخاصية ShortcutsEnabled إلى False
بالإمكان تجميع أحداث KeyPress لمربعات النص التي لها نفس المهمة في دالة حدث واحدة بعد كلمة Handles
.....
منقول
دالة 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.....



