使用SelectionStart获取文本的子字符串
本文关键字:字符串 取文本 SelectionStart 获取 使用 | 更新日期: 2023-09-27 18:13:16
我想在Windows窗体的RichTextBox中获得文本的子字符串,当我用键盘中的箭头移动光标时。
private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
string wholeText = richTextBox1.Text;
if (wholeText.Length >0)
{
int positionBegin = richTextBox1.SelectionStart;
SelectedText = wholeText.Substring(positionBegin);
}
}
但这是不正确的。例如,我输入以下句子:
你好吗?
我想得到子字符串
你在干什么?
有两种方法。
- 一种是从右向左,假设我将光标移动到句子的末尾,使用左箭头移动并停在字母
y
之前。我得到
ou doing?
或者从左到右,比如说我将光标移动到句子的开头,使用右箭头移动并停在字母
y
之前。我得到了you doing?
case 1缺少字母
y'. Case two added a white space before
y ' .
我尝试了+1或-1的索引,但它产生了"IndexOutOfRangeException"。使用SelectionStart
有问题吗?
使用SelectionChanged事件代替KeyDown。我将返回正确的子字符串,它也将处理鼠标选择。