>stavo studiando una funzione dove controlla se l'ultimo carattere
>è uno spazio e quindi spezza, altrimenti torna indietro riducendo
>il numero dei caratteri fino a che trovi lo spazio e li mando
>a capo
Ah ecco perchè: la mia scorre in avanti fino a quando trova lo spazio mentre la tua scorre indietro.. vabè possono tornare utili entrambe a seconda dei casi 
Ho modificato la tua e sembrerebbe che non dia più errore, in effetti entrava in un ciclo infinito, provala per bene:
Private Function SistemaRiga(ByVal Testo As String, ByVal Maxcaratteri As Integer) As String
Dim StartPosition As Integer = 0
If Maxcaratteri < Testo.Length Then
While StartPosition + Maxcaratteri < Testo.Length
StartPosition = StartPosition + Maxcaratteri
While StartPosition > -1 AndAlso Testo.Substring(StartPosition, 1) <> " "
StartPosition -= 1
End While
If StartPosition = -1 Then
Return Testo
End If
Testo = Testo.Insert(StartPosition + 1, Environment.NewLine)
End While
Return Testo
End If
Return Testo
End Function
Ciao!
Riccardo