我正在为政府开发应用程序,用户将输入英文文本,翻译文本将出现在另一个文本框中。
要翻译文本,我使用Microsoft Indic语言输入工具。
所以,当我在一个文本框(英语)中输入文本时,我希望文本应该被翻译成另一个文本框(印地语)。
但是,问题是该工具正在textbox上创建层,因此,在word未完成之前,我不会得到任何KeyPress/KeyDown/TextChange事件,并且为所有输入控件设置IME模式,而不是为特定的单个控件设置IME模式。
是否可以只为一个文本框设置IME模式?
发布于 2017-02-26 12:29:35
假设您有两个TextBox控件,那么English only TextBox只需要将其ImeMode属性设置为Disable。
例如。
this.textBox2.ImeMode = System.Windows.Forms.ImeMode.Disable;(在Visual测试Form1.Designer.cs模式期间,当我在Visual中设置Disable通过属性窗格时,将生成Form1 [Design] )。
编辑:上面的测试是在Windows10上使用英语作为我的默认系统语言。
有趣的观察:当我使用ImeMode.Off而不是ImeMode.Disable (基于:https://stackoverflow.com/a/2209587/7270462)进行测试时,使用ImeMode.Off似乎不足以阻止TextBox接受另一种语言的textbox文本输入(经过测试的中文和日语输入,这些至少仍然可以输入到文本框中)。也测试了设置ImeMode.NoControl最初出于好奇,但这也没有达到与ImeMode.Disable相同的目标。
https://stackoverflow.com/questions/37098195
复制相似问题