sto rivedendo un po 'di codice per un form, e vedere il seguente:Cosa fa cambiare la lingua in ingresso?
void SomeTextBox_Enter(object sender, EventArgs e)
{
InputLanguage.CurrentInputLanguage = GetLocalLanguage(DataModel.Country);
SomeTextBox.ImeMode = ImeMode.On;
}
dove GetLocalLanguage()
passa attraverso InputLanguage.InstalledInputLanguages
e restituisce quello specifico del paese, se applicabile.
Qual è lo scopo di questo codice? Perché dovremmo voler cambiare la lingua di input?
Penso principalmente nell'ambiente di multithreading per garantire che il thread corrente abbia la lingua di input corretta. 'Ottiene o imposta la lingua di input per il thread corrente. – Jehof
Da [MSDN] (https://msdn.microsoft.com/en-us/library/system.windows.forms.inputlanguage (v = vs.110). aspx) "Una lingua di input è una coppia di layout cultura/tastiera che determina come i tasti fisici su una tastiera mappano o tracciano i caratteri in una lingua.La lingua di input è basata su un identificatore di impostazioni locali di input di Windows, come quello restituito dalla Piattaforma Funzione SDK, GetKeyboardLayout. L'identificatore di impostazioni internazionali di input viene anche chiamato handle al valore di un layout di tastiera (HKL). " - Quindi potrebbe essere per supportare diversi layout di tastiera/lingue. – sab669
(seguito) L'applicazione "prevede" di essere utilizzata principalmente da 1 particolare regione? Non sono sicuro che i diversi InputLanguages possano tradurre i codici chiave in modo diverso. Quindi potrebbe esserci un legame, forse. – sab669