C# 使用textbox显示文本的时候,如何把光标定位到指定的某一行 最好有代码示意
1个回答
展开全部
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焦点以上方法只能确定虚换行就是说
自动换行
的文本只能算一行。如果需要自动折行后的定位。建议你把光标定到开头,然后给文本框发消息:下下下下下右右来实现。
以把光标定到第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焦点以上方法只能确定虚换行就是说
自动换行
的文本只能算一行。如果需要自动折行后的定位。建议你把光标定到开头,然后给文本框发消息:下下下下下右右来实现。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询