如何获取和设置WPF文本框的当前光标位置
本文关键字:文本 位置 光标 WPF 设置 何获取 获取 | 更新日期: 2023-09-27 18:11:19
我想从WPF文本框中获取当前光标位置。如果TextBox
包含文本abhishek
,并且光标在abhi
之后闪烁,那么我想要该索引,以便稍后在以编程方式清除TextBox
并以编程方式分配一些其他或相同的文本之后,我希望使光标在4个字符之后闪烁。
我试过这样获取光标位置,
_tempFuncName = txtFunctionName.Text;
_cursorPosition = txtFunctionName.SelectionStart;
_selectionLength = txtFunctionName.SelectionLength;
在其他类似事件的后期阶段,
txtFunctionName.Text = _tempFuncName;
txtFunctionName.SelectionStart = _cursorPosition;
txtFunctionName.SelectionLength = _selectionLength;
此处下划线变量是页面级别的变量。
此代码不起作用。还有其他方法吗?
您可以使用文本框的插入索引属性
//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操作。我在选择event编写代码时犯了一个错误。谢谢大家。
对我来说,设置焦点没有帮助,但滚动到插入符号有帮助。
txt_logArea.Select(txt_logArea.Text.Length, 0);
txt_logArea.ScrollToCaret();