यहाँ के साथ काम नहीं करता है एक छोटी कार्यक्रम है कि समस्या का सामना करना पड़ा मैं सिर्फ पुनरुत्पादित करता है। यह एमएस विंडोज 7 के तहत .NET 4.0 के साथ संकलित किया गया था, बस एक फर्क पड़ता है।ComboBox SelectionChangeCommitted घटना स्वत: पूर्ण
using System;
using System.Drawing;
using System.Windows.Forms;
// Compile with "csc /target:exe /out:comboboxbug.exe /r:System.dll /r:System.Drawing.dll /r:System.Windows.Forms.dll comboboxbug.cs"
// in a Visual Studio command prompt.
static class Program
{
[STAThread]
static void Main()
{
//Create a label.
Label oLabel = new Label();
oLabel.Location = new Point (10, 10);
oLabel.Size = new Size (100, 15);
oLabel.Text = "Combo box bug:";
// Create a combo-box.
ComboBox oComboBox = new ComboBox();
oComboBox.Location = new Point (10, 50);
oComboBox.Size = new Size (150, 21);
oComboBox.Items.AddRange (new object[]
{ "A", "A B", "A C", "A B C", "A C B", "A B C D", "A C B D" });
oComboBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
oComboBox.AutoCompleteSource = AutoCompleteSource.ListItems;
oComboBox.SelectionChangeCommitted
+= new EventHandler (comboBox_SelectionChangeCommitted);
// Create a form.
Form oForm = new Form();
oForm.Size = new Size (200, 150);
oForm.Controls.Add (oLabel);
oForm.Controls.Add (oComboBox);
// Run this form.
Application.Run (oForm);
}
static void comboBox_SelectionChangeCommitted (object sender,
EventArgs e)
{
MessageBox.Show ("SelectionChangeCommitted");
}
}
कॉम्बो-बॉक्स के टेक्स्ट हिस्से में क्लिक करें और "ए" टाइप करें। आपको स्वत: पूर्ण सुझावों की एक सूची मिल जाएगी। अपने माउस के साथ चयन में से एक पर क्लिक करें। SelectionChangeCommitted
घटना नहीं होती है!
स्वत: पूर्ण का उपयोग किए बिना एक मेनू आइटम का चयन करें। आप दिखा रहा है कि SelectionChangeCommitted
घटना हुआ संदेश बॉक्स मिल जाएगा!
यह देखते हुए कि चयन दोनों ही मामलों में उपयोगकर्ता द्वारा बदला गया था, SelectionChangeCommitted
दोनों ही मामलों में नहीं बुलाया जाना चाहिए?
SelectedIndexChanged
ईवेंट का उपयोग करना एक विकल्प नहीं है, क्योंकि इस डिब्बाबंद उदाहरण के पीछे आवेदन के लिए, मैं केवल तभी होता हूं जब उपयोगकर्ता चयन करता है, न कि जब यह प्रोग्रामेटिक रूप से सेट होता है।
मैंने आपके कोड की कोशिश की लेकिन हर चीज ठीक है। – spajce
कोई मौका [इस मुद्दे] (http://stackoverflow.com/questions/13291945/winforms-combobox-loses-autocomplete-value-on-lostfocus) बिल्कुल मदद करता है? – Guvante
@spajce: मैंने उदाहरण स्रोत कोड को लिखा है और वर्णित व्यवहार को डुप्लिकेट किया है। विन 8, वीएस 2010, .NET 4 क्लाइंट प्रोफाइल। ध्यान दें कि स्वतः पूर्ण होने के हिस्से के रूप में मूल्य का चयन करते समय अपेक्षित व्यवहार पॉप अप होता है। – Guvante