Скрытие выпадающего списка ComboBox

#c# #c #winapi

#c# #c #winapi

Вопрос:

Я создаю поле со списком с флажками. Все работает нормально, но я столкнулся с проблемой.

Когда я открываю список со списком и устанавливаю флажок, любое поле списка значений исчезает. Итак, если мне нужно проверить пять значений в поле со списком. Я должен щелкнуть 10 раз.

Я хочу открыть поле со списком и проверить все 5 элементов, а затем щелкнуть вне поля со списком и списка

исчезнуть!

Я попробовал это, прочитав сообщения Windows. Я думаю, что я услышу сообщение for window и когда

пришло сообщение о том, что список полей со списком исчезает, я пропускаю это, просто вызвав return.

Вот мой код:

 protected override void WndProc(ref Message message)
    {
     const int CB_SHOWDROPDOWN=0x014F;
     if (message.Msg == CB_SHOWDROPDOWN ) 
     {
       if(message.WParam == (IntPtr)0)
       {
       SendMessage(Program.poForm.cmbShop.Handle, CB_SHOWDROPDOWN, (IntPtr)1,
         IntPtr.Zero);
       } 
       return;
     }
      base.WndProc(ref message);
    }
  

Это не работает! Есть ли какие-либо обходные пути для решения этой проблемы?

Ответ №1:

Вы смотрели на этот code project пример расширения полей со списком с помощью флажков.

Ответ №2:

Абсолютно ли необходимо использовать поле со списком? Потому что в .NET есть элемент управления checkedlistbos.