منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] عمل حاسبة بسيطة - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] عمل حاسبة بسيطة (/showthread.php?tid=34297)



عمل حاسبة بسيطة - محمد اسماعيل - 12-04-20

السلام عليكم ورحمة الله وبركاتة


لدي سؤال عن انشاء حاسبة بسيطة تقريبا انا قمت بكل شيء

بس عندي مشكلة وهيا منع المستخدم من كتابة عمليات متتالية مثلا

122++33--+55

يعني منع كتابة علامات جمع او طرح او ضرب او قسمة متتالية او مختلفة جعل التيكست تقبل علامة واحدة فقط

وايضا لا تقبل علامات اول العملية الحسابية بالتيكست.

-+5+5


RE: عمل حاسبة بسيطة - سعود - 12-04-20

بصراحة لا ادري كيفية  وضعية الازرار عندك لكن شوف الكود التالي هل يناسبك ام لا
PHP كود :
Private Function GetOp() As Boolean
        If TextBox1
.Text.Contains("+"Then Return True Else Return False
        If TextBox1
.Text.Contains("-"Then Return True Else Return False
        If TextBox1
.Text.Contains("*"Then Return True Else Return False
        If TextBox1
.Text.Contains(""Then Return True Else Return False
    End 
Function
 
   Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.ClickButton2.ClickButton3.ClickButton4.Click
        If GetOp
() = True Then Exit Sub
        TextBox1
.AppendText(sender.text)
 
   End Sub 

هل تقصد انه يتم ادخال الارقام من لوحة المفاتيح(الكيبورد)؟


RE: عمل حاسبة بسيطة - محمد اسماعيل - 12-04-20

(12-04-20, 05:52 PM)سعود كتب : بصراحة لا ادري كيفية  وضعية الازرار عندك لكن شوف الكود التالي هل يناسبك ام لا
PHP كود :
Private Function GetOp() As Boolean
        If TextBox1
.Text.Contains("+"Then Return True Else Return False
        If TextBox1
.Text.Contains("-"Then Return True Else Return False
        If TextBox1
.Text.Contains("*"Then Return True Else Return False
        If TextBox1
.Text.Contains(""Then Return True Else Return False
    End 
Function
 
   Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.ClickButton2.ClickButton3.ClickButton4.Click
        If GetOp
() = True Then Exit Sub
        TextBox1
.AppendText(sender.text)
 
   End Sub 

هل تقصد انه يتم ادخال الارقام من لوحة المفاتيح(الكيبورد)؟

الحدث ملوش علاقة بالازرار المفروض يكون موجود بحدث TextChanged

انا فهمت الكود بيتم ازاي

بس العمليات بتم بالكيبورد او الازرار عشان كدة عايز العملية تكون داخل التيكست الي بتظهر فيها العمليات بحدث TextChanged

عشان لو المستخدم استخدم البوتن او الكيبورد


RE: عمل حاسبة بسيطة - سعود - 12-04-20

إقتباس :انا فهمت الكود بيتم ازاي

بس العمليات بتم بالكيبورد او الازرار عشان كدة عايز العملية تكون داخل التيكست الي بتظهر فيها العمليات بحدث TextChanged

عشان لو المستخدم استخدم البوتن او الكيبورد
يعني انت تحتاج  اما حدث KeyPress او حدث  KeyDown
فقط 
اكيد تعرف الباقي باين من ردك
إقتباس :الحدث ملوش علاقة بالازرار المفروض يكون موجود بحدث TextChanged



RE: عمل حاسبة بسيطة - محمد اسماعيل - 12-04-20

الف شكر علي ردك

جزاك الله كل خير


RE: عمل حاسبة بسيطة - ابراهيم ايبو - 12-04-20

السلام عليكم ورحمة الله وبركاته
تفضل اخي محمد هذا الكود في حدث KeyPress
سوف يمنع اضافة اكثر من اشارة للعمليات الحسابية يسمح بواحدة فقط بين كل رقمين
كود :
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
       If TextBox1.Text.EndsWith("+") Or TextBox1.Text.EndsWith("-") Or TextBox1.Text.EndsWith("*") Or TextBox1.Text.EndsWith("/") Then
           If e.KeyChar = "+" Or e.KeyChar = "-" Or e.KeyChar = "*" Or e.KeyChar = "/" Then
               e.Handled = True
           End If
       End If
   End Sub



RE: عمل حاسبة بسيطة - محمد اسماعيل - 12-04-20

(12-04-20, 07:43 PM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
تفضل اخي محمد هذا الكود في حدث KeyPress
سوف يمنع اضافة اكثر من اشارة للعمليات الحسابية يسمح بواحدة فقط بين كل رقمين
كود :
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
       If TextBox1.Text.EndsWith("+") Or TextBox1.Text.EndsWith("-") Or TextBox1.Text.EndsWith("*") Or TextBox1.Text.EndsWith("/") Then
           If e.KeyChar = "+" Or e.KeyChar = "-" Or e.KeyChar = "*" Or e.KeyChar = "/" Then
               e.Handled = True
           End If
       End If
   End Sub

وعليكم السلام ورحمة الله وبركاتة

تم حل المشكلة بفضل الله

ومن الافادة اختلاف الحلول اشكرك علي ردك استاذ ابراهيم