Код: Выделить всё
Код: Выделить всё
private void PhoneTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
var textBox = sender as TextBox;
var text = textBox.Text.Replace("(", "").Replace(")", "").Replace(" ", "").Replace("-", "");
if (text.Length > 11)
text = text.Substring(0, 11);
if (text.Length >= 6)
textBox.Text = $"({text.Substring(0, 2)}) {text.Substring(2, 5)}-{text.Substring(7)}";
else if (text.Length >= 2)
textBox.Text = $"({text.Substring(0, 2)}) {text.Substring(2)}";
else if (text.Length >= 1)
textBox.Text = $"({text}";
textBox.CaretIndex = textBox.Text.Length; // Mover o cursor para o final
}
System.ArgumentOutOfRangeException: 'Индекс и длина должны относиться к местоположению
в строке. Arg_ParamName_Name'
Сообщение об ошибке указывает на второе условие, выполняющее логику:
Код: Выделить всё
textBox.Text = $"({text.Substring(0, 2)}) {text.Substring(2, 5)}-{text.Substring(7)}";
Подробнее здесь: https://stackoverflow.com/questions/790 ... x-with-wpf
Мобильная версия