【发布时间】:2013-08-05 07:51:54
【问题描述】:
我知道这是一个在这里和其他博客中讨论得很多的话题,但没有任何技术可以帮助我。
我想在文本框中输入马拉雅拉姆语。到目前为止,我做到了这一点。我安装了一个字体'AnjaliOldLipi'。我可以在记事本中输入马拉雅拉姆语。但我不能在 Winform 应用程序中做同样的事情。它在文本框中显示为英文。
我尝试了以下代码,但没有结果。
private void richTextBox_test_Leave(object sender, EventArgs e)
{
System.Globalization.CultureInfo TypeOfLanguage = new
System.Globalization.CultureInfo("en-us");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(TypeOfLanguage);
}
private void richTextBox_test_Enter(object sender, EventArgs e)
{
MessageBox.Show("textbox ebntereed");
System.Globalization.CultureInfo TypeOfLanguage = new System.Globalization.CultureInfo("ms-MY");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(TypeOfLanguage);
richTextBox_test.Font = new Font("AnjaliOldLipi", 12);
}
然后我尝试了以下代码。现在,当我输入文本框时,默认键盘正在更改(我可以在任务栏上看到它)。仍然在键入时,文本以英文显示。我需要按“Ctrl+Shift”来写“马拉雅拉姆语”。我不知道为什么,但我需要在不按任何键盘按钮的情况下用“马拉雅拉姆语”书写。
【问题讨论】:
-
我也试过设置 InputLanguage.CurrentInputLanguage = Malayalam;
-
我了解您的计算机(键盘)的区域设置设置为英文(每次按键都会出现一个西方字符)。如果是这种情况,显示所需字符的最佳替代方法是“即时替换”;也就是说,与richTextBox TextChanged 事件相关的函数将每个输入的字符替换为您想要的字符(例如存储在字典中)。
-
@varocarbas 我喜欢你的想法,但我认为这个想法对于像马拉雅拉姆语这样的语言来说很难实现。
-
我不太熟悉马拉雅拉姆字母及其与西方字母的区别。原则上,关联每个字符(“a”表示“马拉雅拉姆字符”)或者更好地关联每个按键(按下此键时显示“马拉雅拉姆字符”而不是“a”)应该没有任何问题。但是我需要更多信息,请您发布一个足够描述性的示例:当我按下这个键和这个键和这个键时,我想显示“马拉雅拉姆语字符集”。
-
@varocarbas 马拉雅拉姆语与英语略有不同。马拉雅拉姆语中的字母在单词中也具有相同的发音。同一个字母与其他字母组合使用时有多种形式。如您所说,要实现,需要更多的条件语句。无论如何,感谢您的尝试。