Whether you are using GDI+ directly or through Windows Forms based on the .NET Framework, there are a few best practices that you should follow.
Do not design your application to make assumptions on how a font will present the code points of a particular string. For example, in simple scripts like English and other Latin-based scripts, characters' positions progress from left to right as they are typed, and each individual character is typically represented by a single glyph. It is a common pitfall for developers to assume that other scripts will function in the same manner, so they sometimes design their application so that it displays characters entered to the right of the caret position.
This type of application will not function properly for a user dealing with complex scripts. In Indic languages, for instance, characters often combine to form ligatures, and characters can change position with respect to each other at display time.
Your application is in the best position to support any script (even the ones you don't know about) when you display the entire line of text, instead of trying to optimize by displaying one character at a time. Displaying the entire line allows characters to change their shape and position based on the context of the line, guaranteeing proper script handling and language handling.