Ho trovato la soluzione:
codice:
Dim ToInsert As String = "[" & wmpControl.Ctlcontrols.currentPositionString & "]"
Dim InsertPos As Integer = txtLyrics.SelectionStart
txtLyrics.Text = txtLyrics.Text.Insert(InsertPos, ToInsert)
txtLyrics.Focus()
txtLyrics.SelectionStart = InsertPos
txtLyrics.SelectionLength = 0
txtLyrics.ScrollToCaret()
In pratica, prima inserisco all'interno del testo la stringa ToInsert, poi con .Focus() imposto lo stato attivo del controllo(notando che dopo che utlizzo .Insert lo stato attivo passa al form contente il controllo, in seguito imposto la selezione di partenza, cioè InsertPos(usato precedentemente per inserire nella posizione del cursore la stringa ToInsert), poi imposto la .SelectionLength a 0, cosiccè il controllo, dopo il focus, non mi selezioni tutto il testo a partire da InsertPos, poi con .ScrollToCaret() "scrollo" in basso il testo di modo tale che quando il testo è sotto le scrollbars, si possa vedere almeno l'ultima riga in cui è stato inserito il testo.
Penso che questo codice possa essere utile a molta gente, ho pure aggiunto una descrizione dettagliata