Keydown

rakot

Member
09.07.2009
13
0
#1
Уважаемые коллеги,подскажите начинающему решение такой вот,заурядной,вроде бы,проблемки
на гриде надо отловить нажатие 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);
}
 

rakot

Member
09.07.2009
13
0
#3
проверял бряком,тоесть при нажатии 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

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

rakot

Member
09.07.2009
13
0
#5
этот метод тоже отрабатывает,спасибо
но всё же интересно в чем была проблема))будем разбираться
спасибо.