Ho trovato una semplice differenza che non è stata affrontata in questo thread.
Se stai effettuando tutte le ScrollToCarat()
chiamate come parte Load()
dell'evento del tuo modulo , non funziona. Ho appena aggiunto la mia ScrollToCarat()
chiamata Activated()
all'evento del mio modulo e funziona benissimo.
modificare
È importante eseguire questo scorrimento solo quando l' Activated
evento del modulo viene generato per la prima volta (non nelle attivazioni successive), oppure scorrerà ogni volta che il modulo viene attivato, cosa che probabilmente non vorrai.
Quindi, se intrappoli l' Activated()
evento solo per scorrere il testo quando il programma viene caricato, puoi semplicemente annullare l'iscrizione all'evento all'interno del gestore eventi stesso, quindi:
Activated -= new System.EventHandler(this.Form1_Activated);
Se hai altre cose che devi fare ogni volta che il tuo modulo è attivato, puoi impostare a bool
su vero la prima volta che il tuo Activated()
evento viene generato, quindi non scorri sulle attivazioni successive, ma puoi comunque fare le altre cose che devi fare fare.
Inoltre, se sei TextBox
su una scheda che non è la SelectedTab
, ScrollToCarat()
non avrà alcun effetto. Quindi devi almeno renderlo la scheda selezionata mentre stai scorrendo. Puoi racchiudere il codice in a YourTab.SuspendLayout();
e YourTab.ResumeLayout(false);
accoppiare se il modulo sfarfalla quando lo fai.
Fine della modifica
Spero che questo ti aiuti!