19-10-13, 01:32 AM
(آخر تعديل لهذه المشاركة : 19-10-13, 01:33 AM {2} بواسطة ناجي إبراهيم.)
السلام عليكم...
* سبقني أخي أبو رائد - و لكن في الزيادة إفادة *
السبب هو وجود فاصلة الآلاف بعد استعمال الدالة FormatNumber. فعند العودة إلى مربع النص (بعد أن ظهرت به فاصلة الآلاف) ثم الخروج منه فإنه عند استدعاء الدالة FormatNumber هذه المرة سيعتبر أن فاصلة الآلاف رمز غير رقمي، و بالتالي سيتم تجاهل كل ما بعدها ما يؤدي إلى بتر العدد!
يمكن التحايل على الأمر بتخزين محتوى مربع النص دون فاصلة الآلاف في الخاصية Tag لمربع النص عند فقدان التركيز (LostFocus) و استعادة تلك القيمة عند عودة التركيز (GotFocus). مثلاً:
نرجو الاستفادة و السلام.
* سبقني أخي أبو رائد - و لكن في الزيادة إفادة *
السبب هو وجود فاصلة الآلاف بعد استعمال الدالة FormatNumber. فعند العودة إلى مربع النص (بعد أن ظهرت به فاصلة الآلاف) ثم الخروج منه فإنه عند استدعاء الدالة FormatNumber هذه المرة سيعتبر أن فاصلة الآلاف رمز غير رقمي، و بالتالي سيتم تجاهل كل ما بعدها ما يؤدي إلى بتر العدد!
يمكن التحايل على الأمر بتخزين محتوى مربع النص دون فاصلة الآلاف في الخاصية Tag لمربع النص عند فقدان التركيز (LostFocus) و استعادة تلك القيمة عند عودة التركيز (GotFocus). مثلاً:
كود :
Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus
sender.Text = sender.Tag
End Sub
Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
If sender.Text.Trim = "" Then
sender.Tag = ""
Else
sender.Tag = sender.Text.Replace(",", "") ' نحتفظ بالعدد دون فاصلة الآلاف
sender.Text = FormatNumber(Val(sender.Text), 0)
End If
End Subنرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
