将光标设置在文本框的任何文本的末尾

Ano*_*urn 76 c# wpf textbox cursor-position

我有一个文本框,其中已经显示了一个字符串.将光标移到我正在做的文本框中

txtbox.Focus();
Run Code Online (Sandbox Code Playgroud)

但是如何将光标放在文本框中字符串的末尾?

Pan*_*ala 111

对于Windows窗体,您可以使用txtbox.SelectionStarttxtbox.SelectionLength属性控制光标位置(和选择).如果你想设置插入符号结束试试这个:

txtbox.SelectionStart = txtbox.Text.Length;
txtbox.SelectionLength = 0;
Run Code Online (Sandbox Code Playgroud)

对于WPF,请看这个问题.

  • 如果我们不将输入光标放在文本框的末尾,我认为我们不需要-1. (9认同)
  • `Math.max(0,txtbox.Text.Length -1); // Math.max是长度为0的逻辑 (6认同)
  • @YuchenZhong是对的,`-1`将插入点*放在*最后一个字符(`her | e`)之前,而不是*之后*(`here |`).此外,文本框具有`.TextLength`属性,因此您只需要`txtBox.SelectionStart = txtbox.TextLength`. (3认同)

Vis*_*har 66

有多种选择:

txtBox.Focus();
txtBox.SelectionStart = txtBox.Text.Length;
Run Code Online (Sandbox Code Playgroud)

要么

txtBox.Focus();
txtBox.CaretIndex = txtBox.Text.Length;
Run Code Online (Sandbox Code Playgroud)

要么

txtBox.Focus();
txtBox.Select(txtBox.Text.Length, 0);
Run Code Online (Sandbox Code Playgroud)


Pan*_*vos 10

您可以使用TextBox.CaretIndex设置插入位置.如果你唯一需要的是将光标设置在末尾,你可以简单地传递字符串的长度,例如:

txtBox.CaretIndex=txtBox.Text.Length;
Run Code Online (Sandbox Code Playgroud)

您需要在长度上设置插入符索引,而不是长度为1,因为这会将插入符号放在最后一个字符之前.