C# Alt Ключевые проблемы
У меня есть несколько вопросов, касающихся использования клавиши Alt в C#.
Вот мой код:
switch (e.KeyCode)
{
case Keys.Menu:
((do something))
break;
}
Если я правильно понимаю, Keys.Alt используется для комбинаций клавиш, а Keys.Menu - для обнаружения простых нажатий клавиши Alt. Я не собираюсь комбинировать ключи, поэтому использую Keys.Menu. Мне кажется странным, что для Shift есть Keys.ShiftKey, но для Alt он называется Keys.Menu. Почему бы просто не назвать это Keys.AltKey? Смешение!
Во всяком случае, код работает правильно. Однако, по-видимому, есть функция по умолчанию клавиши Alt. Например, когда я набираю что-то в документе или что-то еще и нажимаю Alt, курсор точки вставки исчезает, как если бы текущее окно или задание было отменено.
Эта функция по умолчанию клавиши Alt проблематична для моей программы, поэтому я провел некоторый поиск и нашел следующий код для его отключения:
protected override bool ProcessDialogKey(Keys keyData)
{
if ((keyData & Keys.Alt) == Keys.Alt)
return true;
else
return base.ProcessDialogKey(keyData);
}
Когда этот код вставлен, функция клавиши Alt по умолчанию отключена. Однако кажется, что клавиша Alt также стала полностью неработоспособной и больше не выполняет задачу ((делает что-то)), как я это запрограммировал.
Есть ли способ отключить функцию по умолчанию клавиши Alt, чтобы она не стала нефункциональной?
1 ответ
Не зная больше о том, что вы пытаетесь сделать здесь...
... почему вы не можете выполнить свое "что-то", прежде чем вернуть истину?
protected override bool ProcessDialogKey(Keys keyData)
{
if ((keyData & Keys.Alt) == Keys.Alt)
{
Console.WriteLine("Alt");
// ... call something from right here! ...
return true;
}
return base.ProcessDialogKey(keyData);
}