手怎么搭建网站,主机托管公司,免费网页申请,做招聘网站需要做什么公司本文经原作者授权以原创方式二次分享#xff0c;欢迎转载、分享。原文作者#xff1a;唐宋元明清原文地址#xff1a;https://www.cnblogs.com/kybs0/p/10298697.htmlC# 切换中英文输入法在界面输入时#xff0c;有时需要限定输入法。在不自定义正则表达式或者其它输入处理… 本文经原作者授权以原创方式二次分享欢迎转载、分享。原文作者唐宋元明清原文地址https://www.cnblogs.com/kybs0/p/10298697.htmlC# 切换中英文输入法在界面输入时有时需要限定输入法。在不自定义正则表达式或者其它输入处理的情况下切换中英文时与当前语言栏匹配有以下的几种系统方案InputLanguage方案使用System.Windows.Forms.InputLanguage[1],判断/设置当前输入法状态;获取当前输入法/// summary/// 获取当前输入法/// /summary/// returns/returnsprivate string GetCultureType(){var currentInputLanguage InputLanguage.CurrentInputLanguage;var cultureInfo currentInputLanguage.Culture;//同 cultureInfo.IetfLanguageTag;return cultureInfo.Name;}切换输入法/// summary/// 切换输入法/// /summary/// param namecultureType语言项如zh-CNen-US/paramprivate void SwitchToLanguageMode(string cultureType){var installedInputLanguages InputLanguage.InstalledInputLanguages;if (installedInputLanguages.CastInputLanguage().Any(i i.Culture.Name cultureType)){InputLanguage.CurrentInputLanguage InputLanguage.FromCulture(System.Globalization.CultureInfo.GetCultureInfo(cultureType));CurrentLanguage cultureType;}}通过InputLanguage的设置可以统一同一进程内的输入法。比如切换成英文输入法后当前程序周期内一直是英文输入状态。InputMethod附加属性System.Windows.Input.InputMethodAPI原文给的注释是可以提供用于管理和使用文本服务框架它提供的替换文字如语音和手写的输入法支持的交互功能1 InputMethod下有依赖属性PreferredImeConversionMode可以限定输入字符类型同时切换语言栏的中英文状态。此属性设置了限定输入字符后可以通过人工切换输入法切换回其它输入法。2InputMethod.IsInputMethodEnabled,也可以设置中英文输入法限定一旦设置了输入控件的输入法不可人工切换。除非重新设置IsInputMethodEnabled值。InputMethod适合程序周期内不同输入框分别有不同输入法的情况。比如下面俩个文本框的输入法限定//通过InputMethod.PreferredImeConversionMode附加属性设置输入框的输入法输入转换模式,即限定输入字符类型InputMethod.SetPreferredImeConversionMode(InputTestTextBox0, ImeConversionModeValues.Alphanumeric);InputMethod.SetPreferredImeConversionMode(InputTestTextBox1, ImeConversionModeValues.Native);ImeConversionModeValues枚举值列表如下/// summary描述要执行的一种输入法输入转换模式。/summary[Flags]public enum ImeConversionModeValues{/// summary输入的法使用本机字符 平假名、 朝鲜语、 繁体中文 转换模式。/summaryNative 1,/// summary输入的法使用片假名转换模式。/summaryKatakana 2,/// summary输入的法使用全形转换模式。/summaryFullShape 4,/// summary输入的法使用罗马字符转换模式。/summaryRoman 8,/// summary输入的法使用字符代码转换模式。/summaryCharCode 16, // 0x00000010/// summary输入的方法不会执行任何输入的转换。/summaryNoConversion 32, // 0x00000020/// summary输入的法使用 EUDC 最终用户定义的字符 转换模式。/summaryEudc 64, // 0x00000040/// summary输入的法使用符号转换模式。/summarySymbol 128, // 0x00000080/// summary输入的法使用固定的转换模式。/summaryFixed 256, // 0x00000100/// summary输入的法使用字母数字的转换模式。/summaryAlphanumeric 512, // 0x00000200/// summary输入的方法并不关心使用哪种输入的转换方法;实际的转换方法是不确定的。/summaryDoNotCare -2147483648, // -0x80000000}以上俩方案的Demo源码[2]PS如果是winform程序可以直接设置Control.ImeMode属性参考[3]参考资料[1]System.Windows.Forms.InputLanguage: https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.forms.inputlanguage?viewnetframework-4.7.2[2]Demo源码: https://github.com/Kybs0/InputLanguageTestDemo[3]详情可参考: https://blog.csdn.net/iluna/article/details/4903479