如何获取和设置WPF文本框的当前光标位置

我想从WPF TextBox获取当前光标位置。 如果一个TextBox包含文本abhishek并且光标在abhi之后闪烁然后我想要那个索引,那么稍后以编程方式清除TextBox并以编程方式分配一些其他或相同的文本后我想让光标在4个字符之后闪烁。

我试过像这样得到光标位置,

 _tempFuncName = txtFunctionName.Text; _cursorPosition = txtFunctionName.SelectionStart; _selectionLength = txtFunctionName.SelectionLength; 

并在此后的其他事件中稍稍退后一步,

 txtFunctionName.Text = _tempFuncName; txtFunctionName.SelectionStart = _cursorPosition; txtFunctionName.SelectionLength = _selectionLength; 

这里的下划线变量是页面级变量。

此代码无效。 还有其他方法吗?

您可以使用文本框的caretindex属性

 //You can set this property on some event NumberOfDigits.CaretIndex = textbox.Text.Length; 

你只需要添加一行来设置文本框的焦点,否则一切正常。

 txtFunctionName.Text = _tempFuncName; txtFunctionName.SelectionStart = _cursorPosition; txtFunctionName.SelectionLength = _selectionLength ; txtFunctionName.Focus(); 
 txtFunctionName.Text = _tempFuncName; txtFunctionName.SelectionStart = _cursorPosition; txtFunctionName.SelectionLength = _selectionLength ; 

这些陈述足以完成req的事情。 我在选择编写代码的事件时犯了错误。 感谢大家。