2013-01-14 22 views
5

मैं एक फॉर्म लिख रहा हूं जिसमें कुछ बटन और कॉम्बो बॉक्स शामिल हैं। डिफ़ॉल्ट रूप से "ठीक" बटन अक्षम किया गया है, और मैं केवल वास्तविक मान के बाद इसे सक्षम करना चाहता हूं (कॉम्बो बॉक्स का नाम नहीं) चुना गया है।जांचें कि कोई कॉम्बोबॉक्स मान चयनित है

मुझे पता है कि चयनित मूल्य का उपयोग कैसे किया जाए, और यह कैसे जांचें कि कोई मान चुना गया है या नहीं - लेकिन इन दोनों को फॉर्म बंद होने के बाद ही किया जा सकता है ("x" का उपयोग करके या "ठीक" बटन का उपयोग करके - जो अक्षम है)।

कोई विचार?

धन्यवाद।

+0

यह मेरे लिए थोड़ी देर हो गया है, इसलिए मैं एक जवाब नहीं लिखूंगा। लेकिन क्या आप इसे उस संपत्ति में नहीं देख सकते हैं जिस पर UI ऑब्जेक्ट बाध्य है? – Kevin

+0

क्या आपने 'कॉम्बोबॉक्स। चयन किए गए इंडेक्स चेंज' इवेंट –

उत्तर

7

शायद इस तरह:

private void comboBox_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (comboBox.SelectedIndex > -1) 
     { 
      buttonOK.Enabled = true; 
     } 
    } 

डिफ़ॉल्ट रूप से एक कम्बोबॉक्स का चयनित इंडेक्स -1 (कंबोबॉक्स का नाम है, जिसे आप किसी अन्य इंडेक्स को चुनने के बाद संशोधित नहीं कर सकते हैं), इसलिए यदि आप जांचते हैं कि यह -1 नहीं है तो आपको पता है कि एक मान चुना गया है।

हालांकि एक और विकल्प, और जिसका मैं उपयोग करता हूं, अगर मैं हमेशा एक मूल्य चुनना चाहता हूं तो DropDownStyle संपत्ति का उपयोग करना है और इसे DropDownList पर सेट करना है। इस तरह इंडेक्स 0 डिफ़ॉल्ट रूप से चुना जाता है और उपयोगकर्ता केवल सूची से आइटम का चयन कर सकता है और कुछ भी नहीं।

0

आप चयनित सूचकांक बदल घटना में

this.ComboBox1.SelectedIndexChanged += 
      new System.EventHandler(ComboBox1_SelectedIndexChanged); 

तो उपयोग कर सकते हैं बता गया चयनित सूचकांक बदल घटना

अपने InitializeComboBox वर्ग को यह जोड़े आप देख सकते हैं कि combox बॉक्स चयनित है

private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    ComboBox cbx= (ComboBox) sender; 
    Button1.Enabled = !string.IsNullOrEmpty(cbx.SelectedItem.ToString()); 
} 
+0

का उपयोग करने का प्रयास किया था, मुझे नहीं पता कि इसका +1 क्यों था, यह वास्तव में बटन को अक्षम करते समय बटन को अक्षम करता है। – Mitch

+0

@MitchTWC अगर कुछ चुना गया है तो 'string.IsNullOrEmpty' 'false' होगा, और मैं' string.IsNullOrEmpty' की जांच कर रहा हूं जो सत्य लौटाएगा और बटन सक्षम होगा। निश्चित नहीं है कि आपको क्यों लगता है कि यह अक्षम हो जाएगा। क्या आप –

+0

समझा सकते हैं मैंने अभी आपके उदाहरण की कोशिश की है, जब मैं अपने combobox से कोई आइटम चुनता हूं तो यह मेरे बटन को अक्षम करता है। cbx.SelectedText एक खाली स्ट्रिंग देता है। आपको cbx.Text – Mitch

0
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (comboBox1.SelectedIndex == -1) 
      button1.Enabled = false; 
     else 
      button1.Enabled = true; 

     //or 
     //button1.Enabled = comboBox1.SelectedIndex == -1; 
    } 
+0

का उपयोग करने की आवश्यकता है यह 'comboBox1.SelectedValue' काम नहीं करता है, यहां तक ​​कि combobox के रूप में कुछ भी चुनते समय भी शून्य वापस आता है। – Mitch

+0

मैंने अपना जवाब अपडेट किया। – spajce

+0

यह अब बटन को सक्षम करता है जब कुछ भी नहीं चुना जाता है, तो केवल कुछ चुनने पर बटन को सक्षम करने की आवश्यकता होती है। : पी संपादित करें: हाहा मैं आपका निंजा संपादन देखता हूं;) – Mitch

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