Look at the string.IndexOf method - it has an overload which starts at a specified character position: http://msdn.microsoft.com/en-us/library/5xkyx09y.aspx
Sorry, but there is no built-in way to do that so you will have to re-discover the algorithm for yourself!
And it's not going to be as easy as you think - most Windows fonts are what is called proportionally spaced
which means that an 'i
' is a lot narrower than a 'w
' and so on - so the "length" of a string in the display is not so directly related to the number of characters as you think!
From a visual POV, you may get a better result if you split the input string into words, then work on combining them back together while using Graphics.MeasureString