В Winforms, как мне переопределить метод OnDropDown ComboBox? - PullRequest
4 голосов
/ 12 октября 2011

Я пытаюсь использовать найденный метод здесь , чтобы создать собственное поле со списком, в котором вместо выпадающего списка встроенного списка отображается сетка выбора.Решение в основном просто переопределяет метод OnDropDown, создает форму и показывает ее.Тем не менее, я обнаружил, что встроенный выпадающий также отображается, когда я нажимаю стрелку вниз.Моя форма нарисована поверх нее, но она появляется на секунду.Есть идеи?

protected override void OnDropDown(EventArgs e)
{
  DropDownForm dropDown = new DropDownForm();

  // Locate at correct location.
  DropDownForm.Location = ...;

  DropDownForm.Show();
}

1 Ответ

4 голосов
/ 12 октября 2011

В этой ситуации я бы рекомендовал простоту пользовательского элемента управления.Вместо того, чтобы пытаться обойти поведение по умолчанию (для которого был разработан элемент управления), было бы тривиально создать пользовательский элемент управления с текстовым полем и кнопкой, которая открывает вашу сетку.Фактически, вы можете связать свою сетку с раскрывающимся списком и получить полностью повторно используемый элемент управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...