请教高手:一个关于GetCharIndexFromPosition的奇怪问题
WinForm开发中,我使用了一个控件RichTextBox,我在此控件的OnMouseDown事件中这样来获得鼠标焦点: 
 int   intCharIndex   =   this.GetCharIndexFromPosition(new   Point(e.X,   e.Y)); 
 假如RichTextBox里面的内容是   abcd 
 1.如果我把鼠标点击在a之前,则函数得到的intCharIndex   是0。 
 2.如果我把鼠标点击在a与b之间,则函数得到的intCharIndex   是1。 
 3.如果我把鼠标点击在b与c之间,则函数得到的intCharIndex   是2。 
 4.如果我把鼠标点击在c与d之间,则函数得到的intCharIndex   是3。 
 问题: 
 如果我把鼠标点击在d之后,则函数得到的intCharIndex   仍旧是3。 
 我的本意是,如果把鼠标点击在d之后,要得到4。   
 这个问题怎么解决?     
------解决方案--------------------abcd,d之后没有东西,点上去是没有作用得。。。。 
 GetCharIndexFromPosition只能得到最后的字符的位置
------解决方案--------------------//看来只有用API了   
 [DllImport( "User32.DLL ")] 
 public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam,  
     ref Point lParam); 
 public const uint EM_CHARFROMPOS = 215;   
 private void richTextBox1_MouseMove(object sender, MouseEventArgs e) 
 { 
     int X = Math.Min(Math.Max(e.X, 0), ((RichTextBox)sender).ClientSize.Width); 
     int Y = Math.Min(Math.Max(e.Y, 0), ((RichTextBox)sender).ClientSize.Height); 
     Point vPoint = new Point(X, Y); 
     int intCharIndex = 0x0000FFFF &  
         SendMessage(((RichTextBox)sender).Handle, EM_CHARFROMPOS, 0, 
             ref vPoint);   
     Text = string.Format( "{0},{1} ", intCharIndex, 
         ((RichTextBox)sender).GetCharIndexFromPosition(new Point(e.X, e.Y))); 
 }