मान लीजिए कि हम एक विंडोज़ अनुप्रयोग में निम्न कोड करते हैं:ComboBox.SelectedValue Windows में पाठ जब DropDownStyle = DropDownList दिखाया गया है से मेल नहीं खाती 7
ComboBox comboBox = new ComboBox()
{
AutoCompleteMode = AutoCompleteMode.SuggestAppend,
AutoCompleteSource = AutoCompleteSource.ListItems,
DataSource = new string[] { "", "Ark", "Boat", "Bucket" },
DropDownStyle = ComboBoxStyle.DropDownList
};
this.Controls.Add(comboBox);
TextBox textBox = new TextBox()
{
Left = comboBox.Right,
Top = comboBox.Top,
ReadOnly = true
};
textBox.DataBindings.Add("Text", comboBox, "SelectedValue");
this.Controls.Add(textBox);
यहाँ कोई जादू है, बस एक ComboBox
स्ट्रिंग की एक सूची के लिए बाध्य । TextBox
ComboBox
के SelectedValue
प्रदर्शित करता है।
जब मैं ComboBox
और टैब दूर में "बाल्टी" टाइप करता हूं तो मुझे अप्रत्याशित व्यवहार मिल रहा है। किसी कारण से ComboBox
"नाव" प्रदर्शित करता है लेकिन TextBox
"बाल्टी" प्रदर्शित करता है। मैं उन दोनों को "बाल्टी" प्रदर्शित करने की उम्मीद करता हूं।
अगर मैं DropDownStyle
को DropDown
में बदलता हूं तो यह अपेक्षा करता है, लेकिन मैं नहीं चाहता कि उपयोगकर्ता अपनी इच्छानुसार कुछ भी टाइप कर सकें। उन्हें केवल सूची में मौजूद वस्तुओं को टाइप करने में सक्षम होना चाहिए।
और भी दिलचस्प बात यह है कि, "बाल्टी" टाइप करने और दूर टैब्स करने के बाद, यदि मैं फिर से "बाल्टी" टाइप करता हूं तो यह दोनों में "बाल्टी" प्रदर्शित करेगा। यदि मैं तीसरा प्रयास करता हूं, तो यह ComboBox
और 'टेक्स्टबॉक्स' के लिए "बाल्टी" के लिए "नाव" पर वापस जाता है। तो ऐसा लगता है कि यह सभी बी के माध्यम से साइकिल चल रहा है।
मैंने इसे तब तक नहीं देखा जब तक कि मैंने हाल ही में एक्सपी से विंडोज 7 तक अपग्रेड नहीं किया। मैं नहीं देखता कि इसके साथ क्या करने के लिए कुछ भी हो सकता है, लेकिन मैं इसे किसी भी तरह से फेंक रहा हूं।
यदि यह व्यवहार सही है, तो क्या कोई मुझे बता सकता है कि मुझे अपने अपेक्षित व्यवहार को प्राप्त करने के लिए क्या करना चाहिए?
अद्यतन यह इस प्रतीत होता है Windows के लिए संबंधित 7. सब कुछ Windows XP मोड में होने की उम्मीद के रूप में व्यवहार करता है। क्या कोई और विंडोज 7 चला रहा है मेरे कोड को आजमा सकता है और सत्यापित कर सकता है कि मैं पागल नहीं हूं?
मैंने आपका कोड बिल्कुल लिया और इसे एक नए रूप में फेंक दिया और व्यवहार को पुन: उत्पन्न नहीं कर सकता। आप चयनित इंडेक्स चेंज किए गए ईवेंट को तारित करने का प्रयास कर सकते हैं और कुछ कंसोल संदेशों को फेंक सकते हैं और देख सकते हैं कि कॉम्बो में टाइप करते समय क्या हो रहा है। – TheHurt
मैंने 'comboBox.SelectedIndexChanged + = new EventHandler (प्रतिनिधि {Console.WriteLine ("SelectedIndex = {0}", comboBox.SelectedIndex);});' और आउटपुट का कहना है कि 'चयनित इंडेक्स' को "2" में बदल दिया गया है और फिर "3" तक, जो 'टेक्स्टबॉक्स' दिखाता है उससे मेल खाता है। – Ecyrb
यदि यह एक पुन: उत्पादित बग है, तो आपको इसे माइक्रोसॉफ्ट कनेक्ट पर सबमिट करना चाहिए: https://connect.microsoft.com/VisualStudio/ –