Учитывая следующий кодНеожиданное поведение ComboBox
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;
}
}
Я ожидал, что мой ComboBox, чтобы отобразить «Нану» (DropDownStyle.DropDown), но он показывает «пункт 1». Опуская линию comboBox1.Text = "Item 1";
исправляет это. Ввод comboBox1.Text = "Nanu";
в обработчик события OnShown также исправляет «ошибку».
Почему это?
Что произойдет, если вы поместите comboBox1.Text = "Nanu"; до Controls.Add (this.comboBox1) ;? – VladL
Перемещение строки 2 над Controls.Add исправляет проблему, но не является реальной опцией, так как первая часть программы генерируется дизайнером (метод «InitializeComponents»), вторая часть выполняется в конструкторе формы. –