当我用键盘上的箭头移动光标时,我想获取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?
或者从左边到roght,说我将光标移动到句子的开头,使用右箭头在字母y
之前移动和停止。我得到了
you doing?
案例一缺少字母y'. Case two added a white space before
y`。
我对索引尝试了+1或-1,但它生成了“IndexOutOfRangeException”。
使用SelectionStart
时出错了什么?
答案 0 :(得分:1)
使用SelectionChanged事件而不是KeyDown。我将返回正确的子字符串,它也将处理鼠标选择。