c#Richtextbox将插入符号移动到x,y位置
本文关键字:位置 移动 插入 符号 c#Richtextbox | 更新日期: 2023-09-27 18:03:07
可能重复:
RichTextBox C#设置插入符号位置winforms
我正在做一个项目,我正在从一个终端(tn3270(接口读取,该接口的插入符号位置列为X,Y,我想将其传递给显示完整终端接口的richtextbox。我试过在谷歌上搜索多种方法,但我能找到的似乎只是如何在richtextbox中获取插入符号的x,y位置。
我正在寻找一个功能,可以是
private void SetCaretLocation(iX,iY);
:编辑:
private void SetCaretPos(int iX,int iY)
{
int iLen = 0;
int iRow = 0;
foreach (string str in richTextBox1.lines)
{
iRow++;
iLen += str.Length;
if (iRow == iX)
break;
}
iLen += iY;
richTextBox1.SelectionStart = iLen;
}
我似乎快要接近了。但这一立场似乎并不正确。
我不确定是否应该这样做,但有一种方法:
private void SetCaretPosition(int rows, int col)
{
int curPos = 0;
if (richTextBox1.Lines.Length >= rows)
{
for (int i = 0; i < rows - 1; ++i)
{
curPos += richTextBox1.Lines[i].Length + 1; //add 1 for the newline character
}
richTextBox1.SelectionStart = curPos + col;
}
else
richTextBox1.SelectionStart = richTextBox1.TextLength;
richTextBox1.ScrollToCaret();
}
编辑:
我没有意识到你也发布了一个编辑。您需要考虑换行符。1如果它的,2如果它的
检查SelectionStart方法您可以使用RichTextBox控件的SelectionStart属性来"获取或设置文本框中所选文本的起点">
http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.aspx
代码示例如下:
http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.selectionstart.aspx