Мне нужно, чтобы окно редактирования работало одинаково как для вкладки, так и для клавиши ввода.
Я обнаружил множество проблем, делающих это в приложении. Есть ли способ, которым я могу отправить клавишу табуляции в форму / поле редактирования.
(Обратите внимание, что это должно быть в Compact Framework.)
Решение:
Вот что я в итоге использовал:
// This class allows us to send a tab key when the the enter key is pressed for the mooseworks mask control.
public class MaskKeyControl : MaskedEdit
{
[DllImport("coredll.dll", EntryPoint = "keybd_event", SetLastError = true)]
internal static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
public const Int32 VK_TAB = 0x09;
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyData == Keys.Enter)
{
keybd_event(VK_TAB, VK_TAB, 0, 0);
return;
}
base.OnKeyDown(e);
}
protected override void OnKeyPress(KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
e.Handled = true;
base.OnKeyPress(e);
}
}
Я даю ответ Гансу, потому что его код подтолкнул меня к правильному решению.