Заставить текстовое поле принять язык - PullRequest
2 голосов
/ 06 июня 2019

Я работаю над проектом ввода данных (визуальная форма windows studio), и есть два основных языка, в которые должны быть введены данные: английский и арабский. Я хочу, чтобы в некоторых полях отображался errorprovider, если пользователь вводит английский язык в арабское поле и наоборот, возможно ли это? Спасибо.

Ответы [ 3 ]

0 голосов
/ 06 июня 2019

Просто проверьте, все ли буквы во введенном тексте являются частью английского алфавита.

  string text = "abc";

  char[] englishAlphabet = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
  bool english = true;
  foreach (char c in text.ToLower())
    if (!englishAlphabet.Contains(c))
    {
      english = false;
      break;
    }

  if (english)
    // Do some stuff
  else
    // Show error

То же самое для арабского алфавита.

0 голосов
/ 06 июня 2019

Вы можете создать функцию для проверки арабских символов, используя regex:

internal bool HasArabicCharacters(string text)
{

  Regex regex = new Regex(

    "^[\u0600-\u06FF]+$");

  return regex.IsMatch(text);
}

Или вы можете построить функцию для английских символов, также используя regex:

internal bool HasEnglishCharacters(string text)
{

      Regex regex = new Regex(

        "^[a-zA-Z0-9]*$");

      return regex.IsMatch(text);
}

Источник: Этот вопрос

И после этого вы можете сделать что-то вроде этого:

private void textBox1_TextChanged(object sender, EventArgs e)
{
  if(HasArabicCharacters(textBox1.Text) == true)
  {
    //have arabic chars
    //delete text for example
  }
  else
  {
    //don't have arabic chars
  }
}

Вывод:

؋ = return true;
a = return false;
ئ = return true;
0 голосов
/ 06 июня 2019

Вы можете сделать это самостоятельно, написав логическое условие, если при нажатии клавиши проверяется наличие введенной буквы английского алфавита или нет.Но это не идеальное решение, оно не будет работать для другого языка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...