I am trying to detect the Tab key press in a TextBox
.
I know that the Tab key does not trigger the KeyDown
, KeyUp
or the KeyPress
events. I found: Detecting the Tab Key in Windows Forms of BlackWasp in the internet.
They suggest to override the ProcessCmdKey, which I did, but it does not get triggered either.
Is there a reliable way to detect the Tab Key press?
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
bool baseResult = base.ProcessCmdKey(ref msg, keyData);
if (keyData == Keys.Tab && textBox_AllUserInput.Focused)
{
MessageBox.Show("Tab key pressed.");
return true;
}
if (keyData == (Keys.Tab | Keys.Shift) && textBox_AllUserInput.Focused)
{
MessageBox.Show("Shift-Tab key pressed.");
return true;
}
return baseResult;
}
According to Cody Gray's suggestion, I changed the code as follows:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Tab && textBox_AllUserInput.Focused)
{
MessageBox.Show("Tab key pressed."); }
if (keyData == (Keys.Tab | Keys.Shift) && textBox_AllUserInput.Focused)
{
MessageBox.Show("Shift-Tab key pressed."); }
return base.ProcessCmdKey(ref msg, keyData);
}
The problem is that it does not capture the Tab key press.