Запись в .NET WinForm внутри панели приводит к скачку прокрутки - PullRequest
0 голосов
/ 10 марта 2009

У меня есть FlowPanelControl и пользовательский элемент управления (содержит метку и кнопку). Я добавляю экземпляры пользовательского элемента управления в коллекцию элементов управления панели, которые текут друг под другом, как и ожидалось; показ вертикальной полосы прокрутки тоже хорошо.

Когда пользователь нажимает кнопку в одном из добавленных пользовательских элементов управления, он запускает таймер и записывает истекшее время на метку. При наличии нескольких экземпляров пользовательского элемента управления имеется несколько кнопок с метками; все из которых могут быть запущены и остановлены по мере необходимости. Думайте о них как о мини-секундомере.

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

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

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

Ответы [ 2 ]

0 голосов
/ 11 августа 2013

Вы можете использовать TableLayoutPanel ", чтобы полоса прокрутки не меняла свою позицию.

0 голосов
/ 22 марта 2009

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

...