使文本框接受一种语言

Making a textbox accept a language

我正在做一个数据输入项目(visual studio windowsform),数据必须输入两种主要语言,英语和阿拉伯语,如果用户,我希望一些字段显示 errorprovider在阿拉伯语领域输入英语,反之亦然,这可能吗? 谢谢。

你可以自己编写逻辑if条件来检查输入的字母是否为英文字母。但这不是完美的解决方案,它不适用于其他语言。

只需检查输入文本中的所有字母是否都是英文字母的一部分。

  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

阿拉伯字母也一样。

您可以构建一个函数来使用正则表达式检查阿拉伯字符:

internal bool HasArabicCharacters(string text)
{

  Regex regex = new Regex(

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

  return regex.IsMatch(text);
}

或者您也可以使用正则表达式为英文字符构建一个函数:

internal bool HasEnglishCharacters(string text)
{

      Regex regex = new Regex(

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

      return regex.IsMatch(text);
}

来源:This question

然后你可以这样做:

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;