C # - какое событие заполнить поле со списком, прежде чем он виден? - PullRequest
2 голосов
/ 13 февраля 2011

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

Ответы [ 3 ]

3 голосов
/ 13 февраля 2011

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

[править] Ah Winforms.Используйте событие Load.

[edit2] При каждом нажатии eh.

Хорошо.Я нашел грязные решения, которые советуют вам переопределить WndProc и перехватывать сообщения, но я думаю, что лучше наследовать комбобокс и переопределить OnDropDown, чтобы выполнить заполнение перед вызовом метода OnDropDown предка.

Вы должны заполнить полекогда введено тоже, потому что значение можно выбрать с помощью клавиатуры (стрелки), даже не опуская поле.Вам понадобится и то и другое, если вы хотите использовать их для каждого выбора, поскольку щелчок вызывает событие Enter только тогда, когда у блока не было фокуса ранее.

0 голосов
/ 13 февраля 2011

Вы можете попытаться вызвать SuspendLayout () перед обновлением и вызвать ResumeLayout () после внесенных изменений.

0 голосов
/ 13 февраля 2011

Вы пробовали событие ComboBox.DropDown ?

...