यदि मैं एक सकारात्मक संख्या को एक सकारात्मक संख्या से घटाता हूं, तो कोड काम करता है।

उदाहरण के लिए, 4-1=3। समस्या यह है कि जब मैं 3 - -2 जैसे नकारात्मक संख्या को घटाता हूं।

यह 5 के बराबर होना चाहिए।

जब मैं टेक्स्टबॉक्स txt_p7 (दूसरा टेक्स्टबॉक्स) में '-' दर्ज करता हूं, तो यह इस कोड में एक त्रुटि दिखाता है:

txt_result.Text = (Convert.ToInt32(txt_p1.Text) - Convert.ToInt32(txt_p7.Text)).ToString();

यहाँ कोड का उपयोग कर रहा हूँ:

private void txt_p1_TextChanged(object sender, EventArgs e)
{  if ((!string.IsNullOrEmpty(txt_p1.Text)) && (!string.IsNullOrEmpty(txt_p7.Text)))

txt_result.Text = (Convert.ToInt32(txt_p1.Text) - Convert.ToInt32(txt_p7.Text)).ToString();

    }

private void txt_p7_TextChanged(object sender, EventArgs e)
    {
        if ((!string.IsNullOrEmpty(txt_p1.Text)) && (!string.IsNullOrEmpty(txt_p7.Text)))


            txt_result.Text = (Convert.ToInt32(txt_p1.Text) - Convert.ToInt32(txt_p7.Text)).ToString();
    }
-4
John Shuk 20 नवम्बर 2015, 04:56

2 जवाब

सबसे बढ़िया उत्तर

आपका तर्क txt_p7_TextChanged() में है

इसलिए जब आपने "-" इनपुट करने की कोशिश की, इससे पहले कि आप किसी भी नंबर पर इनपुट करें, यह विधि कहा जाता है।

Convert.ToInt32(txt_p7.Text) इस समय txt_p7.Text = "-" के रूप में एक त्रुटि फेंक देंगे एक नंबर नहीं है।

txt_p7_TextChanged() की शुरुआत में ब्रेक प्वाइंट लगाएं और आप देखेंगे कि क्या गलत है।

इसे इस्तेमाल करे

    private void txt_p7_TextChanged(object sender, EventArgs e)
    {
        int number1, number2;
        if (int.TryParse(txt_p1.Text, out number1) && int.TryParse(txt_p7.Text, out number2))
            txt_result.Text = (number1 - number2).ToString();
    }
2
interceptwind 20 नवम्बर 2015, 02:18

त्रुटि संदेश के बिना, यह बताना मुश्किल है कि क्या हो रहा है, लेकिन मैं जो देख सकता हूं, वह संख्या पूरी होने से पहले गणना शुरू कर रहा है।

यदि आप किसी मान को txt_p1 में इनपुट करते हैं, और txt_p7 में एक नकारात्मक मान को इनपुट करने का प्रयास करते हैं, तो '-' दर्ज करते हुए एक गणना को ट्रिगर किया जाएगा यदि दोनों टेक्स्टबॉक्स के स्ट्रिंग के साथ सशर्त संतुष्ट होने पर। समस्या यह है कि आप बिना किसी त्रुटि जाँच के पूर्णांक में परिवर्तित हो रहे हैं, इसलिए यह '-' को पूर्णांक में परिवर्तित करने का प्रयास कर रहा है जो आपकी विफलता का कारण बन रहा है।

private void txt_p1_TextChanged(object sender, EventArgs e)
    {
        if ((!string.IsNullOrEmpty(txt_p1.Text)) && (!string.IsNullOrEmpty(txt_p7.Text)))
        {
            int val1, val2;
            //Ensure both are valid integers
            if (int.TryParse(txt_p1.Text, out val1) && int.TryParse(txt_p7.Text, out val2))
            {
                txt_result.Text = (val1 - val2).ToString();
            }
        }
    }

आपको रूपांतरण से पहले इनपुट को मान्य करने की आवश्यकता है अन्यथा गैर-संख्यात्मक वर्ण दर्ज किए जा सकते हैं जो एक रन-टाइम विफलता का कारण होगा।

1
Zac Howard-Smith 20 नवम्बर 2015, 02:16