2015-11-04 10 views
6

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?

+0

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

+0

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

+0

(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

risposta

0

L'elemento della lingua di input è semplicemente il contenitore per tutti i dati della lingua di input. C'è un sotto oggetto chiamato "CurrentInputLanguage" che può essere impostato e sovrascritto dalla propria lingua del modulo (definita nelle risorse).

In tutte le mie prove sono giunto alla conclusione che tutte le modifiche sono ignorate.

  • L'input della tastiera non cambia. Le chiavi sono ancora identiche.
  • La formattazione non cambia. I numeri e i valori analizzati non cambiano formato.

Suppongo che questo valore avrebbe dovuto essere di sola lettura.

+0

Questo non è vero. Devo dire. Vedi questa risposta: http://stackoverflow.com/a/23594038/6201755 Devi avere altri problemi. Puoi per favore modificare il tuo post in modo che sia chiaro che è stato il tuo caso speciale? – ib11