This class encapsulates a Culture and a keyboard LayoutName , which determine how input is handled in the current thread or process. There are static members , which allow you to retrieve the CurrentInputLanguage and the DefaultInputLanguage , as well as a list of all the InstalledInputLanguages on a system. You could use this class to provide custom input handling for different environments, perhaps modifying the Control.RightToLeft status or changing the IME (see ImeMode ). public sealed class InputLanguage { // Public Static Properties public static InputLanguage CurrentInputLanguage {set; get; } public static InputLanguage DefaultInputLanguage {get; } public static InputLanguageCollection InstalledInputLanguages {get; } // Public Instance Properties public CultureInfo Culture {get; } public IntPtr Handle {get; } public string LayoutName {get; } // Public Static Methods public static InputLanguage FromCulture (System.Globalization.CultureInfo culture ); // Public Instance Methods public override bool Equals (object value ); // overrides object public override int GetHashCode (); // overrides object } Returned ByApplication.CurrentInputLanguage , InputLanguageChangedEventArgs.InputLanguage , InputLanguageChangingEventArgs.InputLanguage , InputLanguageCollection.this Passed ToApplication.CurrentInputLanguage , InputLanguageChangedEventArgs.InputLanguageChangedEventArgs() , InputLanguageChangingEventArgs.InputLanguageChangingEventArgs() , InputLanguageCollection.{Contains() , CopyTo( ) , IndexOf()} |