2023年1月16日 星期一

[C#] 切換輸入法

有時候是不是會發生在輸入資訊時會需要頻繁切換輸入法,如果在選取到需要輸入中文的textbox裡自動切換到中文輸入法呢,這似乎是意外的便民呢!

以下有兩種做法,一種是切換輸入法,也就是上圖中右邊的狀態,另一種是亞洲區會出現的ime輸入,是上圖左邊的狀態,在亞洲區才會出現,像是韓文、日文、中文等。

需使用的套件
using System.Windows.Forms;

首先是切換輸入法:
取得當前使用的輸入法
InputLanguage currentLanguage = InputLanguage.CurrentInputLanguage;
Console.WriteLine(currentLanguage.Culture.Name);
設定輸入法
InputLanguage newLanguage = InputLanguage.FromCulture(new CultureInfo("zh-CN"));
InputLanguage.CurrentInputLanguage = newLanguage;
取得所有可使用的輸入法
foreach (InputLanguage inputLanguage in InputLanguage.InstalledInputLanguages)
{
    Console.WriteLine(inputLanguage.Culture.Name);
}
接著是切換ime:
textBox1.ImeMode = ImeMode.OnHalf;
以下是imemode可使用的屬性
Alpha8

英數單一位元組字元 (SBC)。 這個設定僅適用於韓文和日文輸入法。

AlphaFull7

英數雙位元組字元。 這個設定僅適用於韓文和日文輸入法。

Close11

輸入法已關閉。 這個設定僅適用於中文輸入法。

Disable3

輸入法目前暫止。 設定這個選項時,使用者將無法從鍵盤開啟輸入法,而且輸入法浮動視窗是隱藏的。

Hangul10

韓文單一位元組字元。 這個設定僅適用於韓文輸入法。

HangulFull9

韓文雙位元組字元。 這個設定僅適用於韓文輸入法。

Hiragana4

平假名雙位元組字元。 這個設定僅適用於日文輸入法。

Inherit-1

繼承父控制項的輸入法模式。

Katakana5

片假名雙位元組字元。 這個設定僅適用於日文輸入法。

KatakanaHalf6

片假名單一位元組字元。 這個設定僅適用於日文輸入法。

NoControl0

無 (預設)。

Off2

輸入法關閉。 這個模式表示輸入法是關閉的,亦即物件的行為模式和英文輸入模式相同。 這個設定僅適用於日文、簡體中文和繁體中文輸入法。

On1

輸入法開啟。 這個值代表輸入法是開啟的而且可輸入中文和日文字元。 這個設定僅適用於日文、簡體中文和繁體中文輸入法。

OnHalf12

半形輸入法開啟。 這個設定僅適用於中文輸入法。

沒有留言:

張貼留言