1. 程式人生 > >更簡單,更有效,更實用的C# 輸入法控制

更簡單,更有效,更實用的C# 輸入法控制

     最近因為,專案需要對輸入法進行控制,但進行了多種嘗試,總有不如意的地方!

    如果運用控制元件ImeMode屬性或者網上找的一些方法,要嘛開發的時候太繁瑣,要嘛就是控制不到位!經過反覆的嘗試,得出一種相對簡單、有效、實用的控制方法與大家分享!程式碼很少,但很靈!

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Windows.Forms;
  5. namespace SysClassLib.Tools
  6. {
  7. publicclass IMEControl:Object
  8.     {
  9. privatestaticint IMECurIndex=0;
  10. publicstaticvoid IMEClose(object sender, EventArgs e)
  11.         {
  12.             //獲取當輸入法序號
  13.             IMECurIndex = InputLanguage.InstalledInputLanguages.IndexOf(InputLanguage.CurrentInputLanguage);
  14.             InputLanguage.CurrentInputLanguage = null;
  15.         }
  16. public
    staticvoid IMEOpen(object sender, EventArgs e)
  17.         {
  18.           //恢復當前輸入法 
  19.            InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[IMECurIndex];
  20.         }
  21. //輸入法控制方法。。在窗體裝的時候呼叫該方法,並將需要使用輸入法的控制,列入其中即可!不需要什麼額外的設定!
  22. publicstaticvoid IMECtrl(Control[] UseIMEControls)
  23.         {
  24.             //為指定控制元件新增事件
  25. foreach (Control UseIMECtl in UseIMEControls)
  26.             {
  27.                 UseIMECtl.Enter += new EventHandler(IMEOpen);
  28.                 UseIMECtl.Leave += new EventHandler(IMEClose);
  29.             }
  30.         }
  31.     }
  32. }

希望能夠消減一點你我彼此的困惑!