我有一个 WPF C# 程序,我尝试在 TextChanged 事件中从文本框中删除某些字符。比如说,美元符号。这是我使用的代码。
private void txtData_TextChanged(object sender, TextChangedEventArgs e)
{
string data = txtData.Text;
foreach( char c in txtData.Text.ToCharArray() )
{
if( c.ToString() == "$" )
{
data = data.Replace( c.ToString(), "" );
}
}
txtData.Text = data;
}
我遇到的问题是,每当用户输入 $ 符号(Shift + 4)时,在 TextChanged 事件中它会从文本框文本中删除 $ 字符,但它也会将光标移动到文本框的开头,这不是我的所需的功能。
作为一种解决方法,我想将光标移动到文本框中文本的末尾,但问题是如果光标位于某个中间位置,那么它对用户来说不是很友好。比如说,例如文本框中的文本是 123ABC,如果我在 3 之后有光标,那么将光标移动到文本的末尾将意味着在下一次击键时,用户将在 C 之后输入数据,而不是在 3 之后正常功能。
有人知道为什么会发生这种光标移动吗?