السلام عليكم
1 - هل يوجد كود لاضافة فاصلة الوف اعلى الارقام
2 - سؤال آخر : كيف نعيد الرقم الى طبيعته ( بدون تنسيق ) وذلك بعد تطبيق الكود
TextBox12.Text = FormatNumber(TextBox12.Text)
3 - هناك مشكلة مع الكود السابق فعند تطبيق كود جمع لا يجمع الارقام بشكل صحيح هل هناك حل
شكرا
السلام عليكم ورحمة الله وبركاته
اخي الكريم
اولا عندما نضيف الفاصلة سواء من فوق او من تحت يتحول الرقم الى نص حصرا ولايمكن اجراء العمليات الحسابية عليه
وهذه الجزئية تستخدم فقط في اظهار النتيجة النهائية للعمليات الحسابية كشكل تزييني ولتسهيل قراءة الارقام ذات الخانات الكثيرة
لذا من غير الصحيح استخدامها في حقول او مربعات ادخال سيتم عليها اجراء عمليات حسابية
بالرغم من ان الفيجوال بيسك متساهل في اجراء بعض العمليات الحسابية من مربعات الادخال وتحويلها ضمنيا دون ان نحولها نحن بالكود
اتمنى ان تكون الفكرة واضحة
اما بالنسبة لاضافة فاصلة من تحت اليك هذا الكود
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TextBox3.Text = Val(TextBox1.Text) + Val(TextBox2.Text)
TextBox3.Text = String.Format("{0:0,0.0}", Val(TextBox3.Text))
End Sub
في حقيقة الامر نعم !

يمكنك وضع ماتريد كفاصلة للالوف وكذلك فاصلة عشرية ايضا ان اردت
الفئة NumberFormatInfo تتيح لك تشكيل ال Formating الخاص بالارقام كما تحب ، بمعنى انك تخبر اللغة كيف تريد ان تنسق ارقامك، بل يتعدى الامر الى اختيار الحروف الخاصة بعلامة الموجب والسالب والعلامة المئوية والحروف المعبرة عن الارقام نفسها ولكن هذا موضوع اخر
بل ولن تحتاج الى كتابة اي كود مخصص لتحويل الارقام يدويا الى الصورة التي تريدها اصلا الموضوع سيتم بشكل طبيعي وكان اللغة تفهم ما تريد فعلا
ببساطة لجعل علامة الالوف الى اعلى ' فان كل ما عليك فعله هو هذا
كود :
Dim f As New NumberFormatInfo
f.NumberGroupSeparator = "'"
الآن استخدم f كلما اردت تحويل قيمة رقمية الى نص ( داخل ToString مثلا ) او العكس ( داخل TryParse مثلا )
كود التحويل يصبح
كود :
Dim f As New NumberFormatInfo
f.NumberGroupSeparator = "'"
Dim d As Double = TextBox1.Text
TextBox2.Text = d.ToString("#,#.#", f)
[
attachment=27152]
الان كود العملية العكسية وهيا تحويل النص الى رقم مرة اخرى
كود :
Dim f As New NumberFormatInfo
f.NumberGroupSeparator = "'"
Dim d As Double
If Double.TryParse(TextBox4.Text, NumberStyles.Any, f, d) Then
TextBox3.Text = d.ToString
End If
[
attachment=27153]
للمزاح فقط ولايصال الفكرة اكثر يمكنك استخدام هذه الطريقة لجعل حروف اسمك هي فاصلة الالوف
[
attachment=27154]
رفعت المثال للفائدة
انا ارى ان تنسيق الارقام موضوع متشعب كثيرا وتكثر عنه الاسئلة والاستفسارا
انا ارى ان نعمل مشروع . كل عضو في المنتدى يساهم فيه بحيث يصبح المشروع يحتوي جميع الحالات الخاصة بتنسيق الارقام ولجميع الادوات
السلام عليكم
افضل في الأغلب استخدام cdbl مع التكست بوكس في العمليات الحسابية