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[
^]