Как ошибка исключение startindex не может быть меньше нуля I...
У меня есть textbox1 и мне нужно разрешить этому textbox1 принимать только арабские символы
ни одна цифра не принимается также ни один английский символ не принимается
так что я пишу в событии key_up следующее
private void textBox1_KeyUp(object sender, KeyEventArgs e) { if (textBox1.Text.Any(char.IsDigit)) { textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1); textBox1.Focus(); } QrClasses qr = new MatrixBarcode.QrClasses(); bool b = qr.HasArabicCharacters(textBox1.Text); if (b == false) { textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1); textBox1.Focus(); } else { textBox1.Enabled = true; } }
public bool HasArabicCharacters(string text) { Regex regex = new Regex( "[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]"); return regex.IsMatch(text); }
Я получаю исключение ошибки startindex не может быть меньше нуля (индекс вне диапазона)
в очереди
текстовое поле textbox1.Текст = элемент textbox1.Текст.Удалить(элемент textbox1.Текст.Длина - 1);
при попытке ввести арабские буквы
так вот как решить эту проблему
Что я уже пробовал:
Исключение ошибки startindex не может быть меньше нуля
CHill60
Итак, когда вы отлаживаете этот код и изучаете содержимое textBox1, ведет ли код себя так, как вы ожидали бы, учитывая данные?
Взгляните на Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]