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);
}
 
проблема в том что событие KeyDown грида ловит всё кроме этого самого Enter:
как проверяли?
для начала попробуйте выполнить
Код:
if (e.KeyCode == Keys.Enter)
MessageBox.Show("Enter pressed...");
 
проверял бряком,тоесть при нажатии 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);
}

функционал выполнен но причину понять не могу-может кто-то подскажет
 
C++:
if (keyData == Keys.Enter)
{
keyData = Keys.Tab;
msg.WParam = new IntPtr((int)Keys.Tab);
}
return base.ProcessCmdKey(ref msg, keyData);
попробуй так
 
этот метод тоже отрабатывает,спасибо
но всё же интересно в чем была проблема))будем разбираться
спасибо.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab