• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Keydown

  • Автор темы rakot
  • Дата начала
R

rakot

Уважаемые коллеги,подскажите начинающему решение такой вот,заурядной,вроде бы,проблемки
на гриде надо отловить нажатие Enter для того чтобы перейти к ячейке с i+1 индексом,проблема в том что событие KeyDown грида ловит всё кроме этого самого Enter:
вот код:
private void grPlan_KeyDown(object sender, KeyEventArgs e)
{
try
{

if (e.KeyCode == Keys.Enter)
{
ProcessDialogKey(Keys.Tab);
return;
}
}
catch
{
}
base.OnKeyDown(e);
}
 
R

rakot

проверял бряком,тоесть при нажатии Enter проскакивает мимо проверки
но вот что интересно:не отрабатывает сей метод:
if (keyData == Keys.Enter)
{
msg.WParam = new IntPtr(Convert.ToInt32(Keys.Tab));
return base.ProcessCmdKey(ref msg, Keys.Tab);
}
else
{
return base.ProcessCmdKey(ref msg, keyData);
}
НО!
работает вот этот:
if (keyData == Keys.Enter)
{

SendKeys.Send("{TAB}");

return base.ProcessCmdKey(ref msg, keyData);
}
else
{
return base.ProcessCmdKey(ref msg, keyData);
}

функционал выполнен но причину понять не могу-может кто-то подскажет
 
T

TaTTDoGG

C++:
if (keyData == Keys.Enter)
{
keyData = Keys.Tab;
msg.WParam = new IntPtr((int)Keys.Tab);
}
return base.ProcessCmdKey(ref msg, keyData);
попробуй так
 
R

rakot

этот метод тоже отрабатывает,спасибо
но всё же интересно в чем была проблема))будем разбираться
спасибо.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!