Проверка состояния
Чтобы проверить состояние клавиш CapsLock , NumLock и ScrollLock , которые вы можете использовать
Control.IsKeyLocked
метод:
var capsLockIsOn = Control.IsKeyLocked(Keys.CapsLock);
Активно Показать состояние
Поскольку клавиши блокировки можно включать или выключать, когда ваше приложение не имеет фокуса, обработки событий клавиатуры в форме недостаточно для обнаружения изменений в состоянии блокировки клавиш, и вы должны также поместить свою логику в некоторые другие места как событие активации вашей формы или вам нужно зарегистрировать глобальный хук клавиатуры.
В качестве простого и надежного решения вы можете проверить их статус в событии Application.Idle
. Вы должны отсоединить свой обработчик пустых событий, когда ваша форма закрыта.
public Form1()
{
InitializeComponent();
Application.Idle += Application_Idle;
}
void Application_Idle(object sender, EventArgs e)
{
if (Control.IsKeyLocked(Keys.CapsLock))
toolStripStatusLabel1.Text = "CapsLock is On";
else
toolStripStatusLabel1.Text = "";
}
protected override void OnFormClosed(FormClosedEventArgs e)
{
Application.Idle -= Application_Idle;
base.OnFormClosed(e);
}