senza bisogno di reinventarsi la ruota.codice:int z = r.IndexOf('§');
Comunque, leggendo la documentazione di ScrollToCaret, si trova
Quindi, quello che puoi fare è prima fare uno scroll in fondo al testo, e quindi dirgli di andare al punto giusto:If the caret is positioned below the visible region of the control, the ScrollToCaret method will scroll the contents of the control until the caret is visible at the bottom of the control. If the caret is positioned above the visible region of the control, this method scrolls the contents of the control until the caret is visible at the top of the control.
codice:string file = "ciao.txt"; string r = File.ReadAllText(file); textBox1.SelectionStart = r.Length - 1 textBox1.ScrollToCaret(); textBox1.SelectionStart = z; textBox1.ScrollToCaret(); textBox1.Focus(); textBox1.DeselectAll();