更簡單,更有效,更實用的C# 輸入法控制
阿新 • • 發佈:2019-01-22
最近因為,專案需要對輸入法進行控制,但進行了多種嘗試,總有不如意的地方!
如果運用控制元件ImeMode屬性或者網上找的一些方法,要嘛開發的時候太繁瑣,要嘛就是控制不到位!經過反覆的嘗試,得出一種相對簡單、有效、實用的控制方法與大家分享!程式碼很少,但很靈!
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Windows.Forms;
- namespace SysClassLib.Tools
- {
- publicclass IMEControl:Object
- {
- privatestaticint IMECurIndex=0;
- publicstaticvoid IMEClose(object sender, EventArgs e)
- {
- //獲取當輸入法序號
- IMECurIndex = InputLanguage.InstalledInputLanguages.IndexOf(InputLanguage.CurrentInputLanguage);
- InputLanguage.CurrentInputLanguage = null;
- }
- public
- {
- //恢復當前輸入法
- InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[IMECurIndex];
- }
- //輸入法控制方法。。在窗體裝的時候呼叫該方法,並將需要使用輸入法的控制,列入其中即可!不需要什麼額外的設定!
- publicstaticvoid IMECtrl(Control[] UseIMEControls)
- {
- //為指定控制元件新增事件
- foreach (Control UseIMECtl in UseIMEControls)
- {
- UseIMECtl.Enter += new EventHandler(IMEOpen);
- UseIMECtl.Leave += new EventHandler(IMEClose);
- }
- }
- }
- }
希望能夠消減一點你我彼此的困惑!