منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : هل من الممكن عمل عمليه حسابية بين مربعين نص فقط
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
بسم الله الرحمن الرحيم
السلام عليكم شباب
هل من الممكن عمليه حسابية بين مربعين نصوص
بمعنى المربع الاول به 20000
والمربع الثانى فارغ
لو وضعنا بالمربع الثانى 1000 تصبح النتيجة بالمربع الاول 19000
لاكن المشكله انه تظهر عندى ب -19000
وجزاكم الله خير جزاء
اذا المشكلة فقط بي - الحل بصيط هاذا الكود

TextBox1.Text = TextBox1.Text.Replace("-", "")

وهذا الكود ما يضيف -

TextBox1.Text = CInt(TextBox1.Text) - CInt(TextBox2.Text)
شكرا لك اخى العزيز
لاكن المشكلة انى عند الطرح مثلا 1000 من 19000
النتيجه تصبح 17889
(24-03-15, 12:59 AM)احمد عبد الحكيم كتب : [ -> ]شكرا لك اخى العزيز
لاكن المشكلة انى عند الطرح مثلا 1000 من 19000
النتيجه تصبح 17889


اخي احمد السبب في هذا هو مكان الكود

فانت يبدو انك وضعته في حدث TextChanged
وعند وضعه في هذا الحدث يقوم بانقاص القيمه من المربع الاول كلما غيرت القيمه وليس انقاص قيمة المربع بالكامل
فعند كتابة 1000 فانت لا تطرح 1000 بل تطرح 1 ثم 10 ثم 100 ثم 1000



بمعنى

اذا اضفت 2000 في المربع الاول
واضفت 1000 في المربع الثاني فالمفترض ان يقوم بكتابة 1000 في المربع الاول  صحيح ؟؟

لكن هنا لن يحدث ذلك

سيقوم هنا بانقاص 1 من 2000 ثم انقاص 10 من الناتج ثم انقاص 100 من الناتج  ثم انقاص 1000  من الناتج

فيصبح الظاهر لديك  ان ناتج طرح 1000 من 2000 هو 889

ولحل هذه المشكله  لو لم تريد كتابة الكود في زر

قم بكتابة الكود في حدث LostFocus


كود :
Private Sub TextBox2_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.LostFocus
       TextBox1.Text = Val(TextBox1.Text) - Val(TextBox2.Text)
   End Sub


بالتوفيق
شكرا لك اخى العزيز معلومه جميلا جدا جدا فخ لن اقع به ثانيتا
المشكلة لم تنحل مرة اخرى
المشكلة ان عندى 3 مربعات نص
المربع الاول به 20000 وهو سابت المربع الثانى متغير على حسب الخصم
بمعنى
المربع الاول 20000
الثانى 1000
فا الثالث19000
بعد ذلك تتحول العملية الحسابية بين المربع الثانى والثالث

وانا وضعت امر لاكن هذا الامر لا يعمل مع LostFocus

If Trim(txtpak.Text) = "" Then
Try
txtpak.Text = Val(txtq.Text - txtkh.Text)
Catch ex As Exception
Exit Sub
End Try
Else
Try
txtpak.Text = Val(txtpak.Text - txtkh.Text)
Catch ex As Exception
Exit Sub
End Try
End If
LostFocus أخي أحمد يعمل بمجرد تغيير التركيز من على الاداه

بمعنى لو عندك اثنان تكست بوكس وزر Button فرضا
ووضعت الكود في حدث LostFocus للتكست الثاني

فلن يتم تنفيذ الكود الا عند ذهابك بالمؤشر اما على التكست الاولى او الى الزر

عندما يفقد التركيز على اداة التكست بوكس الثاني يتم تنفيذ الكود

وارى ان هناك حلولا أخرى اخي احمد حتى غير موضوع الـ LostFocus هذه فقط كانت فكره من الافكار وليست الفكره الوحيده

ولا ادري في كودك ماهو المربع الاول من الثاني من الثالث

وهل الخصم هو خصم قيمه ام خصم نسبه !!؟
بمعنى يتم خصم مثلا 2 % من القيمه ام خصم 1000 جنيه مثلا
ولماذا تتحول العمليه الحسابيه بين المربع الثاني والثالث طالما اننا قمنا بخصم القيمه من المربع الاول وعرضناها في الثالث ؟؟

لو ارفقت مثالا مبسطا لموضوعك لاقوم بالتعديل عليه يكون اسرع واسهل
شكرا جزيلا دكتور شريف على تقديرك واهتمامك
المشروع بالمرفقات
(24-03-15, 06:13 PM)احمد عبد الحكيم كتب : [ -> ]شكرا جزيلا دكتور شريف على تقديرك واهتمامك
المشروع بالمرفقات

تفضل اخ احمد

التعديل بالمرفقات

موفق ان شاء الله
اخى العزيز دكتور شريف
شكرا للمساعدة لاكن هذه ليست الفكره
الفكره
هى عملية حسابية بين 3مربعات نص
مربع النص الاول ستتم فيه هذه العمليه
TextBox2.Text = Val(TextBox1.Text) - Val(TextBox3.Text)
لاكن بعد ذلك عندما تتم العمليه الحسابية الاولى ويكون مربع النص الاول به قيم تتم العمليه الحسابيه بين مربعين نص فقط
TextBox2.Text = Val(TextBox2.Text) - Val(TextBox3.Text)
ارجو قد تكون وضحت الفكرة
TextBox1=20000
TextBox2="هنا تتم العمليه الحسابية الباقى(19000)"
TextBox3="هنا يتم وضع الخصم مثال (1000)"
هنا تنتهى العملية الاولى
بعد ذلك
تتم العمليه الثانيه بين مربعين النص
TextBox2="هنا تتم العمليه الحسابية الباقى(19000)"
TextBox3="هنا يتم وضع الخصم مثال (1000)"
اذا وضعنا
TextBox2="هنا يتم الخصم من هذا المربع(18000)"
TextBox3="تتم الحركة الثانيه (1000)"
الصفحات : 1 2