【发布时间】:2013-12-23 18:19:44
【问题描述】:
我有一个文本框,其中已经显示了字符串。 将光标带到我已经在做的文本框
txtbox.Focus();
但是如何让光标在文本框中的字符串末尾?
【问题讨论】:
-
是WPF还是winforms
标签: c# wpf textbox cursor-position
我有一个文本框,其中已经显示了字符串。 将光标带到我已经在做的文本框
txtbox.Focus();
但是如何让光标在文本框中的字符串末尾?
【问题讨论】:
标签: c# wpf textbox cursor-position
对于 Windows 窗体,您可以使用 txtbox.SelectionStart 和 txtbox.SelectionLength 属性控制光标位置(和选择)。如果你想设置插入符号结束试试这个:
txtbox.SelectionStart = txtbox.Text.Length;
txtbox.SelectionLength = 0;
对于 WPF,请参阅 this question。
【讨论】:
Math.max(0, txtbox.Text.Length -1); // Math.max is the logic if length is 0
-1 将插入点 before 最后一个字符 (her|e) 而不是 after 它 (@987654328) @)。此外,文本框有一个.TextLength 属性,所以您只需要txtBox.SelectionStart = txtbox.TextLength。
有多种选择:
txtBox.Focus();
txtBox.SelectionStart = txtBox.Text.Length;
或
txtBox.Focus();
txtBox.CaretIndex = txtBox.Text.Length;
或
txtBox.Focus();
txtBox.Select(txtBox.Text.Length, 0);
【讨论】:
您可以使用TextBox.CaretIndex 设置插入符号的位置。如果您唯一需要的是将光标设置在末尾,您可以简单地传递字符串的长度,例如:
txtBox.CaretIndex=txtBox.Text.Length;
您需要将插入符号索引设置为长度,而不是长度为 1,因为这会将插入符号放在最后一个字符之前。
【讨论】:
试试下面...它会帮助你...
有时在窗口窗体Focus() 中无法正常工作。所以更好的是你可以使用Select() 来聚焦文本框。
txtbox.Select(); // to Set Focus
txtbox.Select(txtbox.Text.Length, 0); //to set cursor at the end of textbox
【讨论】: