2009-09-30 12 views
2

J'ai fait une application pour entrer chinese pinyin et hanzi dans une base de données. Cela signifie que l'opérateur doit commuter constamment entre "Pinyinput" et "Sogou Input" avec ctrl + shift Il existe un moyen de rendre automatique l'IME quand une zone de texte est sélectionnée? Je veux dire, ne pas changer la disposition du clavier, juste la méthode de saisie de la même disposition de clavierC# - Bascule automatiquement entre deux IME différents dans la même disposition de clavier

Répondre

5

Essayez ceci, je ne suis pas sûr du nom des langues, essayez de le déboguer et d'obtenir le bon nom si elle didn didn ne fonctionne pas.

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; 
         } 
       } 

     } 

si elle ne fonctionne pas, vous devez changer la ligne suivante au nom correct lang:

CName.StartsWith("langName") 
+0

ce code fonctionne, je vous remercie! Mais il ne peut que basculer entre les langues, pas entre les méthodes de saisie dans la même langue (culture) –

+1

change CName = lang.Culture.EnglishName.ToString(); avec CName = lang.LayoutName.ToString(); et le code est parfait! Je vous remercie!!!! –