Vu le code suivantcomportement ComboBox inattendu
namespace WindowsFormsApplication1
{
public class Form1 : Form
{
public Form1()
{
comboBox1 = new System.Windows.Forms.ComboBox();
comboBox1.Items.AddRange(new object[] {
"Item 1",
"Item 2",
"Item 3"});
comboBox1.Location = new System.Drawing.Point(93, 103);
comboBox1.Name = "comboBox1";
comboBox1.Size = new System.Drawing.Size(121, 21);
comboBox1.Text = "Item 1"; // **line 1**
ClientSize = new System.Drawing.Size(284, 262);
Controls.Add(this.comboBox1);
Name = "Form1";
Text = "Form1";
comboBox1.Text = "Nanu"; // **line 2**
}
private ComboBox comboBox1;
}
}
J'attendais mon ComboBox pour afficher "Nanu" (DropDownStyle.DropDown), mais il montre "point 1". L'omission de la ligne comboBox1.Text = "Item 1";
résout ce problème. La mise à comboBox1.Text = "Nanu";
dans le gestionnaire d'événements OnShown corrige également le "bug".
Pourquoi est-ce?
ce qui se passe si vous mettez comboBox1.Text = "Nanu"; avant Controls.Add (this.comboBox1) ;? – VladL
Déplacer la ligne 2 ci-dessus Controls.Add résout le problème, mais n'est pas une option réelle car la première partie du programme est générée par le concepteur (méthode "InitializeComponents"), la deuxième partie est exécutée dans le constructeur du formulaire. –