【发布时间】:2014-05-07 14:27:26
【问题描述】:
我有一个 Windows 8.1 商店应用程序。在此应用程序中,我试图模拟按钮单击事件上的输入/返回键按下。我要更改的控件是 XAML 多行文本框。
所以我在文本框中输入了文本“The”。
然后我按下按钮来模拟回车点击。代码如下:
textBox.Text = String.Format("{0}{1}", textBox.Text, Environment.NewLine);
所以文本现在是“The\r\n”。
我现在将选择开始设置在末尾。所以:
textBox.SelectionStart = textBox.Text.Length;
此时 SelectionStart 为 4,textbox.Text.Length 为 5(从零开始,所以可以)
我现在输入将单词“one”附加到文本框。所以现在文本现在是'The\r\none'
我现在用我的按钮再次模拟回车键。
文本现在是 'The\r\none\r\n' 并且 text.length 是 10。
我现在尝试使用与上面相同的代码设置 selectionStart 位置:
textBox.SelectionStart = textBox.Text.Length;
但是 SelectionStart = 8 即使 Text.length=10;
所以现在当我输入另一个字符时,它会在回车之前。例如
textbox.Text 现在等于“The\r\nonez\r\n”。 'z' 是新输入的字符。
有人知道为什么会这样吗?
谢谢
【问题讨论】:
标签: c# windows-store-apps windows-8.1 multiline