Нужно добавить ссылку, если Вы пишите код для консольного приложения. 
    
Подключить пространство имен System.Windows.Forms
Этот класс не поддерживает наследования, все его члены являются статическими.
В этом классе нет методов, которые могут переключать язык ввода, так как класс рассчитан только для работы с текущим потоком.
 
   Подключить пространство имен System.Windows.Forms
Этот класс не поддерживает наследования, все его члены являются статическими.
В этом классе нет методов, которые могут переключать язык ввода, так как класс рассчитан только для работы с текущим потоком.
наиболее часто используемые члены класса  | 
     ||
| DefaultInputLanguage.Culture | культура языка ввода (раскладки клавиатуры) по умолчанию | en-US | 
| DefaultInputLanguage.LayoutName | название страны языка ввода (раскладки клавиатуры) по умолчанию | США | 
| CurrentInputLanguage.Culture | культура языка ввода (раскладки клавиатуры) для текущего потока | en-US | 
| CurrentInputLanguage.LayoutName | название страны языка ввода (раскладки клавиатуры) для текущего потока | США | 
| InstalledInputLanguages | получение всех языков ввода, установленных в системе | |
DefaultInputLanguage.Culture
    Свойство возвращает культуру язык ввода (раскладки клавиатуры) по умолчанию.
   
     Main.cs  
     
usingSystem;//добавить ссылку на System.Windows.Forms//подключить пространство именusingSystem.Windows.Forms;classProgram {-  
publicstaticintMain() { -   
//язык ввода (раскладка клавиатуры) по умолчанию -   
Console.WriteLine(InputLanguage.DefaultInputLanguage.Culture); -   
Console.ReadKey(); -   
return0; -  
} }
usingSystem;//добавить ссылку на System.Windows.Forms//подключить пространство именusingSystem.Windows.Forms;classProgram {-  
publicstaticintMain() { -   
//язык ввода (раскладка клавиатуры) по умолчанию -   
Console.WriteLine(InputLanguage.DefaultInputLanguage.Culture); -   
Console.ReadKey(); -   
return0; -  
} }
    
en-US     
    
   
   DefaultInputLanguage.LayoutName
    Свойство возвращает название страны языка ввода (раскладки клавиатуры) по умолчанию. 
   
     Main.cs  
     
usingSystem;//добавить ссылку на System.Windows.Forms//подключить пространство именusingSystem.Windows.Forms;classProgram {-  
publicstaticintMain() { -   
//название страны языка ввода (раскладки клавиатуры) по умолчанию -   
Console.WriteLine(InputLanguage.DefaultInputLanguage.LayoutName); -   
Console.ReadKey(); -   
return0; -  
} }
usingSystem;//добавить ссылку на System.Windows.Forms//подключить пространство именusingSystem.Windows.Forms;classProgram {-  
publicstaticintMain() { -   
//название страны языка ввода (раскладки клавиатуры) по умолчанию -   
Console.WriteLine(InputLanguage.DefaultInputLanguage.LayoutName); -   
Console.ReadKey(); -   
return0; -  
} }
    
США     
    
   
   CurrentInputLanguage.Culture
    Свойство возвращает культуру языка ввода (раскладки клавиатуры) для текущего потока.
   
     Main.cs  
     
usingSystem;//добавить ссылку на System.Windows.Forms//подключить пространство именusingSystem.Windows.Forms;classProgram {-  
publicstaticintMain() { -   
//культура языка ввода (раскладки клавиатуры) для текущего потока -   
Console.WriteLine(InputLanguage.CurrentInputLanguage.Culture); -   
Console.ReadKey(); -   
return0; -  
} }
usingSystem;//добавить ссылку на System.Windows.Forms//подключить пространство именusingSystem.Windows.Forms;classProgram {-  
publicstaticintMain() { -   
//культура языка ввода (раскладки клавиатуры) для текущего потока -   
Console.WriteLine(InputLanguage.CurrentInputLanguage.Culture); -   
Console.ReadKey(); -   
return0; -  
} }
    
en-US     
    
   
   CurrentInputLanguage.LayoutName
    Свойство возвращает название страны языка ввода (раскладки клавиатуры) для текущего потока.
   
     Main.cs  
     
usingSystem;//добавить ссылку на System.Windows.Forms//подключить пространство именusingSystem.Windows.Forms;classProgram {-  
publicstaticintMain() { -   
//название страны языка ввода (раскладки клавиатуры) для текущего потока -   
Console.WriteLine(InputLanguage.CurrentInputLanguage.LayoutName); -   
Console.ReadKey(); -   
return0; -  
} }
usingSystem;//добавить ссылку на System.Windows.Forms//подключить пространство именusingSystem.Windows.Forms;classProgram {-  
publicstaticintMain() { -   
//название страны языка ввода (раскладки клавиатуры) для текущего потока -   
Console.WriteLine(InputLanguage.CurrentInputLanguage.LayoutName); -   
Console.ReadKey(); -   
return0; -  
} }
    
США     
    
   
 
   InstalledInputLanguages
    Свойство возвращает все языки ввода, установленные в системе.
   
     Main.cs  
     
usingSystem;//добавить ссылку на System.Windows.Forms//подключить пространство именusingSystem.Windows.Forms;classProgram {-  
publicstaticintMain() { -   
//количество раскладок клавиатуры -   
intamountLanguage = 0; -   
foreach(InputLanguage iinInputLanguage.InstalledInputLanguages) { -    
Console.WriteLine("{0} {1}", i.Culture, i.LayoutName); -    
amountLanguage++; -   
} -   
Console.WriteLine("\nколичество раскладок клавиатуры : {0}", amountLanguage); -   
Console.ReadKey(); -   
return0; -  
} }
usingSystem;//добавить ссылку на System.Windows.Forms//подключить пространство именusingSystem.Windows.Forms;classProgram {-  
publicstaticintMain() { -   
//количество раскладок клавиатуры -   
intamountLanguage = 0; -   
foreach(InputLanguage iinInputLanguage.InstalledInputLanguages) { -    
Console.WriteLine("{0} {1}", i.Culture, i.LayoutName); -    
amountLanguage++; -   
} -   
Console.WriteLine("\nколичество раскладок клавиатуры : {0}", amountLanguage); -   
Console.ReadKey(); -   
return0; -  
} }
    
en-US  США
ru-RU Русская
количество раскладок клавиатуры : 2
                                                          
   
  ru-RU Русская
количество раскладок клавиатуры : 2