Я знайшов просту різницю, яка не була розглянута в цій темі.
Якщо ви виконуєте всі ScrollToCarat()
дзвінки в рамках події вашої форми Load()
, це не працює. Я щойно додав свій ScrollToCarat()
дзвінок до Activated()
події своєї форми , і це чудово працює.
Редагувати
Важливо робити це лише при першому запуску Activated
події форми (не при наступних активаціях), або вона буде прокручуватися щоразу, коли ваша форма активована, що ви, мабуть, не хочете.
Отже, якщо ви лише захоплюєте Activated()
подію для прокрутки тексту, коли програма завантажується, ви можете просто скасувати підписку на подію всередині самого обробника подій, таким чином:
Activated -= new System.EventHandler(this.Form1_Activated);
Якщо у вас є інші речі, які потрібно робити щоразу, коли ваша форма активована, ви можете встановити bool
значення "true" впершеActivated()
події, щоб ви не прокручували наступні активації, але все одно можете робити інші речі, які вам потрібно робити.
Крім того, якщо ви TextBox
знаходитесь на вкладці, яка не є SelectedTab
, ScrollToCarat()
не матиме ефекту. Тому вам потрібно принаймні зробити це вибраною вкладкою під час прокрутки. Ви можете загортати код у пара YourTab.SuspendLayout();
і YourTab.ResumeLayout(false);
пари, якщо ваша форма мерехтить, коли ви це робите.
Кінець редагування
Сподіваюсь, це допомагає!