[سؤال] مشكلة عند فقدان التركيز ؟ - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : [سؤال] مشكلة عند فقدان التركيز ؟ (/showthread.php?tid=595) |
مشكلة عند فقدان التركيز ؟ - kafi2030 - 19-10-13 بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاتهلدي نموذج يتم من خلاله ادخال اسم المادة سعر الشراء سعر المبيع ملاحظات ان كل من حقل الشراء وحقل المبيع، تم كتابة كود مشابه لهما عند فقدان التركيز، ودلك من اجل العمل على تنسيق الرقم المدخل اي ادا الرقم 2500 سوف يظهر 2,500 والكود هو كود : Private Sub txt_Mabee_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txt_Mabee.LostFocus الامور كلها سليمة ورائعة...... ولكن لاحظت ان تمت العودة لسبب ما الى تلك الحقول، فانه عند فقدان التركيز عنها تحصل المشكلة وهي ان الرقم المدخل من قبل المستثمر يتغير ادا كان المدخل مثلا 1850 يصبح 1 واذا كان المدخل مثلا 2400 يصبح 2 وادا كان المدخل مثلا 4800 يصبح 4 ارجو تصحيح الكود لتجنب حدوث لتغيير في مدخلات المستثمر والف شكر RE: مشكلة عند فقدان التركيز ؟ - learning.net - 19-10-13 اخى الكريم اسف لردى بدون ان افهم المطلوب جيدا ولكن الكود الذى وضعته يقول انه عند فقدان التركيز يصبح فورمات الرقم فى التكست بوكس رقم صحيح بدون فواصل عشريه لانك وضعت صفر هنا فى هذا السطر sender.Text = FormatNumber(Val(sender.Text), 0) ارجو التوضيح اكثر (ومن الممكن ان يكون احد من الاعضاء فهم المطلوب اكثر منى) RE: مشكلة عند فقدان التركيز ؟ - @@أبورائد@@ - 19-10-13 السلام عليكم ورحمة الله وبركاته لأن التنسيق يصلح للعرض فقط وليس لإدخال البيانات زيادة توضيح: إذا كان الموجود في مربع النص 123,456 فعند محاولة قراءته سينقطع الرقم عند الفاصلة التنسيقية وسيجد أول رقم وهو هنا 123 ويتجاهل 456, لها لا تتم قراءة الرقم المعروض كتنسيق لحفظه في قاعدة البيانات فهذه كارثة. هناك حل إذا كنت تقوم بقراءة الرقم قبل وضعه في قاعدة البيانات وهو أن تحذف الشكل التنسيقي قبل وضعه في قاعدة البيانات كالتالي كود : Dim d As Integer = Me.TextBox1.Text.Replcae("," , "") السلام عليكم ورحمة الله وبركاته RE: مشكلة عند فقدان التركيز ؟ - ناجي إبراهيم - 19-10-13 السلام عليكم... * سبقني أخي أبو رائد - و لكن في الزيادة إفادة * السبب هو وجود فاصلة الآلاف بعد استعمال الدالة FormatNumber. فعند العودة إلى مربع النص (بعد أن ظهرت به فاصلة الآلاف) ثم الخروج منه فإنه عند استدعاء الدالة FormatNumber هذه المرة سيعتبر أن فاصلة الآلاف رمز غير رقمي، و بالتالي سيتم تجاهل كل ما بعدها ما يؤدي إلى بتر العدد! يمكن التحايل على الأمر بتخزين محتوى مربع النص دون فاصلة الآلاف في الخاصية Tag لمربع النص عند فقدان التركيز (LostFocus) و استعادة تلك القيمة عند عودة التركيز (GotFocus). مثلاً: كود : Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus نرجو الاستفادة و السلام. RE: مشكلة عند فقدان التركيز ؟ - eng.khalidvb - 19-10-13 وعليكم السلام ورحمة الله وبركاته اخي جرب هذا الكود وبأذن لله سينجح تفضل : PHP كود : Private Sub TextBox1_LostFocus(sender As Object, e As EventArgs) Handles TextBox1.LostFocus RE: مشكلة عند فقدان التركيز ؟ - kafi2030 - 19-10-13 الف شكر لكافة الاخوة الزملاء على التوضيح الاكثر من رائع بارك الله فيكم، وبهذا المنتدى الرائع احب ان انوه الى انه بعد تجربة المقترحات وجدت مايلي بالنسبة الى الاخ eng.khalidvb الكود الذي تفضلت به رائع وعمل بشكل جيد، ولكنه كان بحاجة الى اضافة سطر واحد، لتجنب حدوث خطأ في حال عدم قيام المستثمر بادخال اي قيمة وذلك باسناد القيمة 0 للحقل في كان الحقل فارغ 'ok كود : 'Dim val As Integer الكود والحل المقدم من الاخ ناجي ابراهيم عمل بشكل رائع الكود المقدم من الاخ / ابو رائد من خلال كتابة الكود، ظهرت رسالة خطأ وفق الصورة المبينة RE: مشكلة عند فقدان التركيز ؟ - ناجي إبراهيم - 19-10-13 السلام عليكم... الخطأ في كود الأخ أبو رائد هو خطأ إملائي فقط حيث كتب الحرف c قبل الحرف a (أي Replcae و الصحيح هو Replace) سلام. |