У меня есть программа 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, чтонормальная функциональность.
Кто-нибудь имеет представление, почему происходит это смещение курсора?