C#dateTimePicker焦点不工作

C#dateTimePicker焦点不工作,c#,winforms,C#,Winforms,在我的C#Windows窗体应用程序中,我想通过按Enter键在两个日期时间选择器(日期时间选择器1,日期时间选择器2)之间导航。 当窗体在日期时间选择器1上打开焦点并按Enter键,然后聚焦日期时间选择器2并按Enter键聚焦日期时间选择器1 我正在尝试以下代码,但不起作用: private void dateTimePicker2_Enter(object sender, EventArgs e) { dateTimePicker1.Focus(); } 当您通过按tab键更改焦点或

在我的C#Windows窗体应用程序中,我想通过按Enter键在两个
日期时间选择器
日期时间选择器1
日期时间选择器2
)之间导航。
窗体
日期时间选择器1
上打开焦点并按Enter键,然后聚焦
日期时间选择器2
并按Enter键聚焦日期时间选择器1

我正在尝试以下代码,但不起作用:

private void dateTimePicker2_Enter(object sender, EventArgs e)
{
   dateTimePicker1.Focus();
}
当您通过按tab键更改焦点或单击进入控件来输入控件时,将触发。如果要收听输入键,则需要使用

事件处理的实现如下所示:

private void dateTimePicker1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter) {
        dateTimePicker2.Focus();
    }
}

private void dateTimePicker2_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter) {
        dateTimePicker1.Focus();
    }
}

Enter事件并不表示按Enter键,它表示用户将焦点更改为控件

试试这个

private void dateTimePicker1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Enter)
    {
        dateTimePicker2.Focus();
    }
}

private void dateTimePicker2_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Enter)
    {
        dateTimePicker1.Focus();
    }
}

您应该使用KeyDown事件

    private void dateTimePicker1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
            dateTimePicker2.Focus();
    }

代码是否未执行或执行时未设置焦点?不是回车键按下事件。使用。为什么输入而不是制表符,哪个更正常?@mrali问题解决了吗?如果是这样,请接受答案您的代码工作正常,但当我使用下面的代码来控制表单时,您的代码无法正常工作:private void Form1_KeyDown(object sender,KeyEventArgs e){If(e.KeyData==System.Windows.Forms.Keys.Enter){SendKeys.Send(“{TAB}”)}}@mrali Set
KeyPreview
的表单设置为true@mrali我的回答解决了你的问题还是你还有问题?