Управление перерисовкой метки в VBa - PullRequest
2 голосов
/ 15 марта 2012

Можно ли перекрасить форму только для одного элемента управления. То есть мне нужно увеличить ширину метки. но при перекраске формы, форма полностью освежает. похоже, что форма мигает. Поэтому мне нужно только перерисовать ярлык. Пожалуйста, помогите мне

Ответы [ 2 ]

2 голосов
/ 16 марта 2012

Вместо formName.Repaint я пытался с "DoEvents"У меня это сработало.

formCreateAndValidate.lblPgrsBar.Width = prgrsLblWidth
DoEvents
1 голос
/ 19 июня 2016

Вместо Перекрасить (что действительно медленно) Я рекомендую использовать эту пару строк для обновления элемента управления:

myControl.Visible = False
myControl.Visible = True

Это намного быстрее. Невидимое состояние настолько короткое, что оно ведет себя очень плавно.

Это также работает для меня, где DoEvents не работает. Например. в классе, который имеет атрибут WithEvents для обработки событий элемента управления и изменения его внешнего вида. Надеюсь, это поможет!

...