C# uwp BEFOREXTEXT更改光标在文本前面移动

C# uwp BEFOREXTEXT更改光标在文本前面移动,c#,uwp,textbox,C#,Uwp,Textbox,我在UWP中有一个文本框。我只想强制执行其中的数字。在beforetextchanged事件中执行此操作会起作用 args.Cancel = args.NewText.Any(c => !char.IsDigit(c)); 但是,我遇到的问题是,如果在文本框为空时输入一个非数字,然后输入,比如说“1”,然后是“2”,然后是“3”,那么文本框将显示“231”。光标位于输入的第一个数字前面。如何阻止它这样做?您可以添加TextChanged事件处理程序,如下所示: private void

我在UWP中有一个文本框。我只想强制执行其中的数字。在beforetextchanged事件中执行此操作会起作用

args.Cancel = args.NewText.Any(c => !char.IsDigit(c));

但是,我遇到的问题是,如果在文本框为空时输入一个非数字,然后输入,比如说“1”,然后是“2”,然后是“3”,那么文本框将显示“231”。光标位于输入的第一个数字前面。如何阻止它这样做?

您可以添加
TextChanged
事件处理程序,如下所示:

private void TestBox\u TextChanged(对象发送者,textchangedventargs e)
{
if(TestBox.Text.Length==1)
{
TestBox.SelectionStart=TestBox.Text.Length;
TestBox.SelectionLength=0;
}
}

致以最诚挚的问候。

谢谢,就这样。