1

所以我的任务是制作一个自定义的数据可绑定可为空的 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);
    }
4

0 回答 0