为什么输入后TextBox的插入符号跳到文本的开头?

时间:2019-01-16 17:59:13

标签: c# uwp textbox cursor caret

我有一个用户控件,它包含一个图像和一个TextBox,在文本框中输入内容后,光标(如插入符号)跳到文本框中的文本开头,我该如何调试为什么发生这种情况? 我知道这段代码可以将插入符号放在开头:textBox1.Select(0,0); 但是我没有像这样的任何代码,我尝试了textBox1.Select(text.Length-1,0),这会将插入符号放在文本的末尾。不管最新输入的字母在哪里,如何确保插入符号在最新输入之后?

1 个答案:

答案 0 :(得分:1)

如果您以编程方式更改Text的{​​{1}}属性,则它将自动将插入符号置于开头。因此,我认为您已经订阅了TextBox的{​​{1}}事件,并且在事件处理程序中放置了诸如TextChanged之类的代码。

当用户更改TextBoxmyTextBox.Text = "some text";事件时,事件处理程序将再次更改Text,因此,插入符号被设置为开始。

所以,这不是因为代码的任何故障。这是TextChanged的默认行为,现在,无论是功能还是错误,这都是有争议的。

我也遇到了这个问题,我的解决方案是在需要更改程序文本的情况下以编程方式将光标置于末尾,并在事件处理程序的末尾添加以下代码:

Text

希望有帮助。