C# — автоматическое переключение между двумя разными IME в одной и той же раскладке клавиатуры

Я сделал приложение для ввода китайских пиньинь и ханзи в базу данных. Это означает, что оператор должен постоянно переключаться между «Pinyinput» и «sogou input» с помощью ctrl+shift. Есть ли способ сделать автоматическое изменение IME при выборе текстового поля? Я имею в виду не переключение раскладки клавиатуры, а только метод ввода той же раскладки клавиатуры.


person Magnetic_dud    schedule 30.09.2009    source источник


Ответы (1)


попробуйте это, я не уверен в названии языков, попробуйте отладить его и получить правильное имя, если это не сработало.

public void ToPinyinput()
        {
                string CName= "";
                foreach(InputLanguage lang in InputLanguage.InstalledInputLanguages) 
                {
                        CName = lang.Culture.EnglishName.ToString();

                        if(CName.StartsWith("Pinyinput"))
                        {
                                InputLanguage.CurrentInputLanguage = lang;
                        }
                }

        }


public void Tosogou()
        {
                string CName= "";
                foreach(InputLanguage lang in InputLanguage.InstalledInputLanguages) 
                {
                        CName = lang.Culture.EnglishName.ToString();

                        if(CName.StartsWith("sogou"))
                        {
                                InputLanguage.CurrentInputLanguage = lang;
                        }
                }

        }

если это не сработало, вам нужно изменить следующую строку на правильное имя языка:

CName.StartsWith("langName")
person Wael Dalloul    schedule 30.09.2009
comment
этот код работает, спасибо! Но он может переключаться только между языками, а не между методами ввода на одном языке (культуре). - person Magnetic_dud; 30.09.2009
comment
изменить CName = lang.Culture.EnglishName.ToString(); с CName = lang.LayoutName.ToString(); и код отличный! Спасибо!!!! - person Magnetic_dud; 30.09.2009