Вот что я нашел, работает лучше всего:
bool bNeedToUpdate = false;<p>
StringBuilder szNumbersOnly = new StringBuilder();<p>
TextBox textSource = sender as TextBox;<p>
if (null == textSource)<p>
return;<p>
foreach (char ch in textSource.Text)<p>
{<p>
if (("0123456789").Contains(ch.ToString()))<p>
{<p>
szNumbersOnly.Append(ch);<p>
}<p>
else<p>
{<p>
bNeedToUpdate = true;<p>
}<p>
}<p>
if (bNeedToUpdate)<p>
{<p>
textSource.Text = szNumbersOnly.ToString();<p>
textSource.SelectionStart = szNumbersOnly.Length;<p>
}
Я ударил этот ответ от Эрин Флек, модератора форума, который ответил это аналогичный вопрос.
@Afnan получает зеленый чек, потому что он / она / она ответил на мой первоначальный вопрос.