Поле со списком закрывается, прежде чем я могу установить флажок

В настоящее время я работаю в VS 2012. .NET 4.5 и работаю над оснасткой mmc. (я точно знаю?!)

поэтому я следил за этой темой:

Есть ли простой способ реализовать Выбранный Combobox в WinForms

так как я хочу что-то похожее на диспетчер задач по расписанию.

Но это решение, похоже, не работает для меня. список всплывает, но когда я пытаюсь установить флажок в моем списке. Он показывает мне большой средний палец и закрывает раскрывающийся список.

есть ли способ подавить событие закрытия выпадающего списка «потеря фокуса»? я могу, не скрыть список, но тогда он никогда не скроется.

Например:

// designer class


// 
// comboBox1
// 
this.comboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
this.comboBox1.DropDownHeight = 1;
this.comboBox1.DropDownWidth = 1;
this.comboBox1.FormattingEnabled = true;
this.comboBox1.IntegralHeight = false;
this.comboBox1.Location = new System.Drawing.Point(256, 371);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(238, 21);
this.comboBox1.TabIndex = 5;
this.comboBox1.DropDown += new System.EventHandler(this.comboBox1_DropDown);
this.comboBox1.DropDownClosed += new System.EventHandler(this.comboBox1_DropDownClosed);
// 
// lstWeekDays
// 
this.lstWeekDays.CheckBoxes = true;
this.lstWeekDays.Location = new System.Drawing.Point(50, 63);
this.lstWeekDays.Name = "lstWeekDays";
this.lstWeekDays.Size = new System.Drawing.Size(263, 97);
this.lstWeekDays.TabIndex = 13;
this.lstWeekDays.Tag = "lstlstWeekDays";
this.lstWeekDays.UseCompatibleStateImageBehavior = false;
this.lstWeekDays.View = System.Windows.Forms.View.SmallIcon;
this.lstWeekDays.Visible = false;

// Code behind

public Form1()
{
    InitializeComponent();
    this.lstWeekDays.Items.Add("Monday");
    this.lstWeekDays.Items.Add("Tuesday");
    this.lstWeekDays.Items.Add("Wednesday");
    this.lstWeekDays.Items.Add("Thursday");
    this.lstWeekDays.Items.Add("Friday");
    this.lstWeekDays.Items.Add("Saturday");
    this.lstWeekDays.Items.Add("Sunday");
}

private void comboBox1_DropDown(object sender, EventArgs e)
{
    lstWeekDays.Visible = true;
}

private void comboBox1_DropDownClosed(object sender, EventArgs e)
{
    lstWeekDays.Visible = false;
}

Добавьте галочки в этот список вместо панели.


person Puzzle84    schedule 01.07.2013    source источник
comment
Вы знаете об элементе управления CheckedListBox? Я не предлагаю вам соглашаться на что-то, что вам не нравится, но в качестве базового элемента управления, который выполняет ту же работу - я думаю, что это стоит рассмотреть :P   -  person User 12345678    schedule 01.07.2013
comment
Мне нужно, чтобы это было раскрывающимся списком :(   -  person Puzzle84    schedule 01.07.2013
comment
Без проблем. Не могли бы вы включить код, который у вас есть на данный момент? Если мы сможем воспроизвести проблему, будет легче исправить D:   -  person User 12345678    schedule 01.07.2013
comment
Взгляните на ссылку, которую я разместил. это довольно много. я просто загружаю список по-другому   -  person Puzzle84    schedule 01.07.2013
comment
@Puzzle84 Puzzle84 Такая проблема возникает из-за пользовательского элемента управления, который вы используете, если вы получаете его из другого источника (а не настраиваете самостоятельно), я не думаю, что мы сможем помочь вам решить эту проблему. Если вы настраиваете его самостоятельно, вы должны опубликовать некоторый код или, лучше, весь код этого элемента управления.   -  person King King    schedule 02.07.2013
comment
Обновлен код выше. я не понимаю, как вы думаете, что это когда-либо был пользовательский элемент управления.   -  person Puzzle84    schedule 02.07.2013