2011-12-05 4 views
5

मैं यह सुनिश्चित करने की कोशिश कर रहा हूं कि उपयोगकर्ता मेरे प्रोग्राम में पासवर्ड के रूप में कम से कम 6 वर्णों का उपयोग करता है।WinForms: C# में टेक्स्टबॉक्स में न्यूनतम वर्णों की जांच कैसे करें?

मुझे पता है कि MaxLength का उपयोग कर अधिकतम आकार कैसे सेट करें, लेकिन मैं न्यूनतम लंबाई के लिए यह कैसे करता हूं?

+2

आप विंडोज़ रूपों, aspx, एचटीएमएल में बात कर, WPF, Silverlight? –

+0

@Terry Donaghe: WinForms। मैंने अपने टैग बदल दिए हैं। – HelpNeeder

उत्तर

1

हालांकि competent_tech तुम मेरे दृष्टिकोण की सिफारिश की है, एक आदिम समाधान निम्नलिखित होगा।

उपयोग अपने पाठ बॉक्स KeyDown घटना के लिए निम्न कोड:

protected override void OnLoad(object sender, EventArgs e) 
{ 
    base.OnLoad(sender, e); 

    txtPassword.KeyDown += OnPasswordKeydown;  
} 

protected void OnPasswordKeydown(object sender, KeyEventArgs e) 
{ 
    bool isValid = txtPassword.Text.Length < 6; 

    ErrorText.Visible = isValid; 
    AcceptButton.Visible = isValid; 
} 
+1

मुझे यकीन नहीं है कि आप इसका उपयोग कैसे करते हैं। KeyDown घटना का उद्देश्य क्या है? – HelpNeeder

+0

प्रत्येक बार जब आप टेक्स्टबॉक्स में कुंजी टाइप करते हैं तो KeyDown ईवेंट उठाया जाता है। बस अपना फॉर्म टेक्स्टबॉक्स अपने फॉर्म पर छोड़ दें और उस पर डबल क्लिक करें। यह स्वचालित रूप से एक KeyDown ईवेंट हैंडलर – Polity

+1

बना देगा क्या आप इस बात का जिक्र करते हैं कि इसका उपयोग करने के लिए मुझे किस नामस्थान को जोड़ना चाहिए? – HelpNeeder

2

यदि आपके पास एकाधिक उपयोगकर्ता इंटरफेस हैं जहां उपयोगकर्ता अपना पासवर्ड (वेब, मोबाइल, विंडोज क्लाइंट इत्यादि) दर्ज कर सकता है या ऐसा करने के लिए एक सेवा प्रदान करेगा (वेब, डब्ल्यूसीएफ, आदि), तो मुझे लगता है आपका सबसे अच्छा विकल्प इस प्रकार की त्रुटि को इन सभी प्लेटफार्मों के सबसे सामान्य स्तर पर पकड़ना है।

हम आम तौर पर डेटाबेस (संग्रहीत प्रक्रियाओं के माध्यम से) में इस तरह के व्यवसाय नियमों को लागू करते हैं ताकि हमारे पास इन नियमों की जांच और परिवर्तन करने के लिए एक प्रसिद्ध स्थान हो।

यदि आप ऐसे डेटाबेस का उपयोग कर रहे हैं जो संग्रहीत प्रक्रियाओं का समर्थन नहीं करता है, तो आप इस कार्यक्षमता को "व्यापार परत" या अपने आवेदन के लिए व्यावसायिक तर्क करने के लिए जिम्मेदार कोड का सेट कार्यान्वित कर सकते हैं।

1

लंबाई लागू करने के लिए अपने पासवर्ड टेक्स्टबॉक्स पर मान्य विधि का उपयोग करें।

ड्रॉप अपने फार्म पर एक लेबल और यह एक ErrorText दे:

 if (TextBox1.Text.Length < 6) 
     { 
      MessageBox.Show("password too short"); 
      TextBox1.Focus(); 
     } 
+0

क्या आप एक उदाहरण पोस्ट कर सकते हैं? मुझे यकीन नहीं है कि स्ट्रिंग की लंबाई की जांच कैसे करें। फोकस के लिए – HelpNeeder

+0

+1। उपयोगी हो सकता है :) – HelpNeeder

3
if (passwordTextBox.Text.Length < 6) 
{ 
    MessageBox.Show("Passwords must be at least 6 characters long."); 
    return /*false*/; 
} 

// Do some stuff... 

return /*true*/; 
+0

मेरे लिए काम करता है! धन्यवाद! – HelpNeeder

+1

उपयोगात्मक रूप से, मैं उपयोगकर्ता द्वारा दर्ज ग़लत सफेद रिक्त स्थान को अनदेखा करने के लिए, पासवर्ड पर भी, _all_ टेक्स्ट बॉक्स मानों पर 'string.rim') करता हूं। –

+0

निश्चित रूप से आपको इसमें मौजूद वर्णों की संख्या से परे पासवर्ड को सत्यापित करने की आवश्यकता है,! = उपयोगकर्ता नाम, आदि। मैं केवल न्यूनतम लंबाई की समस्या के साथ मदद करने की कोशिश कर रहा हूं। – rfmodulator

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