There is some mixing up going on in most of times between the terms "caret" and "cursor". Cursor is the mouse cursor, caret is the vertical blinking bar inside the textbox that indicates the insertion point.
You can control caret position (and selection) by
TextBox.SelectionStart
and
TextBox.SelectionLength
properties.
Example if you want move caret before 3th character set
SelectionStart = 2
and
SelectionLength = 0
If you mean the mouse cursor and the caret at the same time, then you can use a code like:
int start = textBox.SelectionStart;
int length = textBox.SelectionLength;
Point point = new Point();
User32.GetCaretPos(out point);
textBox.Text = value;
textBox.Select(start, length);
User32.SetCaretPos(point.X, point.Y);