Пожалуйста, посмотрите на код ниже, чтобы лучше понять, что именно я имею в виду:CurrentInputLanguage свойство не обновляется при доступе сразу после изменения языка
using System;
using System.Windows.Forms;
namespace CurrentInputLanguageTest
{
static class Program
{
[STAThread]
static void Main()
{
Console.WriteLine(InputLanguage.CurrentInputLanguage.LayoutName); // It's US
Console.ReadLine(); // Changed my keyboard layout while typing something
Console.WriteLine(InputLanguage.CurrentInputLanguage.LayoutName); // It's still US
var form = new Form();
var button = new Button();
button.Click += CheckInputLanguage;
form.Controls.Add(button);
Application.Run(form);
}
static void CheckInputLanguage(object sender, EventArgs e)
{
// I have changed my input language while the form is opened and pressed the button.
// It changes when called in this event handler.
Console.WriteLine(InputLanguage.CurrentInputLanguage.LayoutName);
}
}
}
Проблема: У меня есть обработчик событий в мое приложение, и я необходимо знать, что представляет собой текущий язык ввода при запуске события. Как я могу это сделать?