textbox中只能用Select来定光标。我只发现这个,接收两个参数,一个是位置,一个是选定数。只要确定位置并且把选定字符的数量设为零即可达到确定光标位置的效果。
以把光标定到第5行的第2个字符为例:放一个textBox1,放一个Button1双击填入
int p = 0; //定义位置
for (var i = 1; i < textBox1.Lines.Length && i < 5; i++) //遁环至文本框的前4行,或文本框的最大行数。
{
p += 2; //每个换行符占2
p += textBox1.Lines[i - 1].Length; //加上每行的字符数
}
p += 2; //第5行的第二个字符。
textBox1.Select(p, 0); //选定p位置的0个字符(定光标位置)
textBox1.Focus(); //给textbox1焦点
以上方法只能确定虚换行就是说自动换行的文本只能算一行。如果需要自动折行后的定位。建议你把光标定到开头,然后给文本框发消息:下下下下下右右来实现。
用selectionStart试试,