طريقة برمجة مربعات النص بالسي شارب لقبول نصوص اللغة العربية فقط والتحويل مابين اللغات حيث تساعدك هذه الطريقة عندما تريد ظبط مربع النص القابل للتحرير ليتعامل مع الاحرف باللغة العربية و التحويل ما بين اللغة ويرفض اي احرف غير اللغة التي تريد للمستخدم استخدامها للتحرير
إليك الكود في الاسفل :
How to change the language of a TextBox
automatically
هذا الاحداث والدوال لكيفية تغير اللغة وتحويلها في مربع النص في البرنامج بواسطة الكود ما بين العربي والانجليزي
private void textBox1_Enter(object sender, EventArgs e)
{
SetKeyboardLayout(GetInputLanguageByName(“ar”));
هذا الحدث یتفعل بمجرد الدخول والضغط على مربع النص يحول لغة المربع عربي//
}
private void textBox1_Leave(object sender, EventArgs e)
{
SetKeyboardLayout(GetInputLanguageByName(“eng”));
هذا الحدث یتفعل بمجرد الخروج ومغادرة مربع النص يحول لغة المربع انجلیزي//
}
}
public static InputLanguage GetInputLanguageByName(string inputName)
{
foreach (InputLanguage lang in InputLanguage.InstalledInputLanguages)
{
if (lang.Culture.EnglishName.ToLower().StartsWith(inputName))
{
return lang;
}
}
return null;
}
private void SetKeyboardLayout(InputLanguage layout)
{
InputLanguage.CurrentInputLanguage = layout;
هذه دالة تحویل اللغة تستقبل بارمتر مختصر لاسم اللغة المطلوب التحویل //
الیها
}
وهذا حدث اخر لمنع قبول بيانات حرفية في مربع النص الا النصوص العربية فقط :
private void TextBox2_KeyPress(object sender, KeyPressEventArgs e)
{
char lastChar = e.KeyChar;
//MessageBox.Show(((int)e.KeyChar).ToString());
if (e.KeyChar != 32 && e.KeyChar != 8) //allows space and backspace
{
if (char.IsControl(lastChar) || char.IsDigit(lastChar) ||
char.IsNumber(lastChar) || char.IsPunctuation(lastChar))
e.Handled = true;
else if (lastChar < 1569)
{//the start of ascii codes for Arabic chars.
e.Handled = true;
}
}
}