2011-06-19 14 views
7

मेरे पास कुछ कोड है जो जांचता है और सुनिश्चित करता है कि जब उपयोगकर्ता फ़ील्ड में प्रवेश करते हैं तो 1 - 10 से एक पूर्णांक इनपुट होना चाहिए।सी # - टेक्स्टबॉक्स सत्यापन

हालांकि यदि उपयोगकर्ता फ़ील्ड पर ध्यान केंद्रित करते हैं, तो "खराब" डेटा (जैसे कि "fdgfdg") अभी भी क्षेत्र में छोड़ा गया है। तो कुछ दिखा सकते हैं कि फ़ील्ड पर फोकस कब खो जाता है, यदि डेटा मान्य नहीं है, तो इसके बजाय एक डिफ़ॉल्ट मान दर्ज किया जाएगा। 5

private void textBox4_TextChanged(object sender, EventArgs e) 
     { 
      try 
      { 
       int numberEntered = int.Parse(textBox4.Text); 
       if (numberEntered < 1 || numberEntered > 10) 
       { 
        MessageBox.Show("You must enter a number between 1 and 10"); 
       } 
      } 
      catch (FormatException) 
      { 

       MessageBox.Show("You need to enter an integer"); 
      } 
     } 
+1

@Gats: यह WinForms डेस्कटॉप अनुप्रयोग है ... –

+0

यह नहीं WinForms है एक वेब पेज –

+1

@ गैट्स: भले ही यह एक वेब ऐप था, सर्वर-साइड सत्यापन अनिवार्य है। क्लाइंट-साइड सत्यापन सर्वर-साइड सत्यापन के लिए सुविधा सुविधा होना चाहिए। –

उत्तर

14

कई घटनाओं है कि आप उपयोग कर सकते हैं, Leave, LostFocus और Validating वहाँ MSDN here पर इन विभिन्न घटनाओं के अधिक चर्चा है कर रहे हैं स्थापित करने के लिए।

कुछ परिदृश्यों Leave और LostFocus तो सबसे अच्छा सक्रिय नहीं होगा आपके मामले में उपयोग करने के लिए के तहत Validating घटना है:

textBox1.Validating += new CancelEventHandler(textBox1_Validating); 


    void textBox1_Validating(object sender, CancelEventArgs e) 
    { 
     int numberEntered; 

     if (int.TryParse(textBox1.Text, out numberEntered)) 
     { 
      if (numberEntered < 1 || numberEntered > 10) 
      { 
       MessageBox.Show("You have to enter a number between 1 and 10"); 
       textBox1.Text = 5.ToString(); 
      } 
     } 
     else 
     { 
      MessageBox.Show("You need to enter an integer"); 
      textBox1.Text = 5.ToString(); 
     } 
    } 
+0

धन्यवाद, यह एक उत्कृष्ट उदाहरण है – Jay

0

का प्रयोग करेंगे आप कर रहे हैं, तो हाथ से रोलिंग सत्यापन की तरह आप यहाँ कर, तुम सब करने की जरूरत है आप के बाद डिफ़ॉल्ट मान सेट करने के लिए है MessageBox.Show()

मानक WinForms में

मुझे नहीं लगता कि आप सत्यापन के लिए किसी भी ढांचे समर्थन है, लेकिन आप में इस दे सकता है: प्रेरणा के लिए http://msdn.microsoft.com/en-us/library/ms951078.aspx ताकि आप अपने एप्लिकेशन

+0

उज्ज्वल सोच .. :) – Jay

0

हमारे भर इस तर्क को तितर बितर नहीं है ई पाठ बॉक्स नियंत्रण पर Leave घटना को मान्य और डिफ़ॉल्ट मान

संबंधित मुद्दे