所以我的任务是制作一个自定义的数据可绑定可为空的 DateTimePicker。我让它工作得很好。唯一的问题是,用户不想使用箭头键来导航控件。他们想使用 tab 键。但是,如果您在 DateTimePicker 中按 Tab 键,它将留给下一个控件。我已经通过使用下面的代码解决了这个问题。现在的问题是,我不能离开控制,哈哈。我不知道如何检查我当前在哪个子字段上,所以我知道我是在最左边还是最右边的子字段上,只是离开控件而不是继续循环。有人有任何提示吗?这将不胜感激。谢谢!
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (!this.ShowCheckBox || (this.ShowCheckBox && this.Checked))
{
if (keyData == Keys.Tab)
{
// **THIS IS WHERE I'M STUCK
// if not on far right subfield do below
SendKeys.Send("{RIGHT}");
return true;
}
else if (keyData == (Keys.Shift | Keys.Tab))
{
// **THIS IS WHERE I'M STUCK
// if not on far left subfield do below
SendKeys.Send("{LEFT}");
return true;
}
}
return base.ProcessCmdKey(ref msg, keyData);
}