Я установил KeyPreview = true;
для своих Form
. В основном я хочу использовать клавиши со стрелками, чтобы перейти к следующему и предыдущему изображениям вместо того, чтобы сменить фокус на разные элементы управления. Я установил свойство Handled
в true
, но все же изменения фокусировки нажимают клавишу со стрелкой.Изменения фокусировки даже после установки e.Handled = true
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete)
{
// Do stuff
}
else if (e.KeyCode == Keys.Left)
{
// Do stuff
e.Handled = true;
}
else if (e.KeyCode == Keys.Right)
{
// Do stuff
e.Handled = true;
}
}
EDIT
поведение я хочу достичь следующим образом.
Left Arrow Key -> Previous Image
Right Arrow Key -> Next Image
Теперь у меня есть несколько TextBox
эсов на моем Form
и поэтому я не хочу, чтобы перейти к следующей и предыдущей картинке, если эти Textbox
эсов находятся в центре внимания, потому что тогда он должен перемещаться по вместо этого текст.
Что вам нужно именно? У вас есть форма, на которой есть некоторые элементы управления и окно с картинкой, и вы хотите изменить текущее изображение, которое отображается при нажатии стрелок влево/вправо? –
'KeyDown',' KeyPress' и 'KeyUp' являются полностью независимыми событиями. Скорее всего, ваши другие элементы управления работают с одним из других событий, которые вы не «прерываете». И «KeyPress», и «KeyUp» широко используются. – Luaan
@GeorgeLica Да. У меня также есть несколько «TextBox' на моей« форме », и поэтому я не хочу перейти к следующим и предыдущим изображениям, если эти« текстовые файлы »находятся в фокусе, потому что тогда он должен перемещаться по тексту вместо этого. –