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

Abh*_*bhi 14 .net c# wpf

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

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

_tempFuncName = txtFunctionName.Text;
_cursorPosition =  txtFunctionName.SelectionStart;
_selectionLength = txtFunctionName.SelectionLength;
Run Code Online (Sandbox Code Playgroud)

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

txtFunctionName.Text = _tempFuncName;
txtFunctionName.SelectionStart = _cursorPosition;
txtFunctionName.SelectionLength  = _selectionLength;
Run Code Online (Sandbox Code Playgroud)

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

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

sob*_*y01 12

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

//You can set this property on some event
NumberOfDigits.CaretIndex = textbox.Text.Length;
Run Code Online (Sandbox Code Playgroud)


Upe*_*ari 5

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

txtFunctionName.Text = _tempFuncName; 
txtFunctionName.SelectionStart = _cursorPosition; 
txtFunctionName.SelectionLength  = _selectionLength ; 
txtFunctionName.Focus();
Run Code Online (Sandbox Code Playgroud)