C# 如何获取和设置WPF文本框的当前光标位置
我想从WPF文本框中获取当前光标位置。如果C# 如何获取和设置WPF文本框的当前光标位置,c#,.net,wpf,C#,.net,Wpf,我想从WPF文本框中获取当前光标位置。如果TextBox包含文本abhishek,并且光标在abhi之后闪烁,那么我需要该索引,以便以后以编程方式清除TextBox并以编程方式分配一些其他或相同的文本后,我希望光标在4个字符之后闪烁 我试过像这样获取光标位置 _tempFuncName = txtFunctionName.Text; _cursorPosition = txtFunctionName.SelectionStart; _selectionLength = txtFunctionN
TextBox
包含文本abhishek
,并且光标在abhi
之后闪烁,那么我需要该索引,以便以后以编程方式清除TextBox
并以编程方式分配一些其他或相同的文本后,我希望光标在4个字符之后闪烁
我试过像这样获取光标位置
_tempFuncName = txtFunctionName.Text;
_cursorPosition = txtFunctionName.SelectionStart;
_selectionLength = txtFunctionName.SelectionLength;
txtFunctionName.Text = _tempFuncName;
txtFunctionName.SelectionStart = _cursorPosition;
txtFunctionName.SelectionLength = _selectionLength;
在以后的某个阶段,从其他类似事件中退缩
_tempFuncName = txtFunctionName.Text;
_cursorPosition = txtFunctionName.SelectionStart;
_selectionLength = txtFunctionName.SelectionLength;
txtFunctionName.Text = _tempFuncName;
txtFunctionName.SelectionStart = _cursorPosition;
txtFunctionName.SelectionLength = _selectionLength;
这里下划线变量是页面级变量
此代码不起作用。还有其他方法吗?您只需添加一行即可设置文本框的焦点,否则一切正常
txtFunctionName.Text = _tempFuncName;
txtFunctionName.SelectionStart = _cursorPosition;
txtFunctionName.SelectionLength = _selectionLength ;
txtFunctionName.Focus();
您可以使用文本框的caretindex属性
//You can set this property on some event
NumberOfDigits.CaretIndex = textbox.Text.Length;
这些语句足以完成req任务。我在选择事件来编写代码时犯了错误。谢谢大家。对我来说,设置焦点并没有什么帮助,但滚动到插入符号确实有帮助
txt_logArea.Select(txt_logArea.Text.Length, 0);
txt_logArea.ScrollToCaret();
这个答案与OP标题中的答案相匹配,这也是我一直在寻找的。