C# 在windows 8.1应用商店中模拟按enter键

C# 在windows 8.1应用商店中模拟按enter键,c#,windows-store-apps,windows-8.1,multiline,C#,Windows Store Apps,Windows 8.1,Multiline,我有一个Windows8.1商店应用程序。在这个应用程序中,我试图模拟在按钮单击事件中按下回车键。我正在更改的控件是一个XAML多行文本框 因此,我在文本框中输入文本“the” 然后,我按下我的按钮来模拟回车键。这方面的代码是: textBox.Text = String.Format("{0}{1}", textBox.Text, Environment.NewLine); 因此,文本现在是“the\r\n” 我现在将选择开始设置为结束。因此: textBox.SelectionStart

我有一个Windows8.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,以零为基础,所以OK

我现在输入将单词“one”附加到文本框中。所以现在文本现在是“The\r\none”

我现在用我的按钮再次模拟回车键

文本现在为“无”,text.length为10

我现在尝试使用与上面相同的代码设置selectionStart位置:

textBox.SelectionStart = textBox.Text.Length;
但是,即使文本.length=10,SelectionStart=8

现在,当我输入另一个字符时,它会在回车之前出现。e、 g

textbox.Text现在等于'The\r\nOEZ\r\n'z'是新输入的字符

有人知道为什么会这样吗


谢谢

试试这样的

textBox.Select(textBox.Text.Length, 0);
资料来源:

同样的事情也会发生