• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

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