当前位置: 首页 > 知识库问答 >
问题:

按Enter键聚焦所选控件

狄兴业
2023-03-14

在C#windows应用程序中,要导航窗体的所有控件(使用Enter键),我使用以下代码:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyData == System.Windows.Forms.Keys.Enter)
    {
        SendKeys.Send("{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();
    }
}

任何人请帮帮我。

共有1个答案

李兴安
2023-03-14

您可以将两个DateTimePickers订阅到同一个事件处理程序,而不是使用两个事件,并使用Sender对象:

private void dateTimePicker_KeyDown(object sender, KeyEventArgs e)
{
    var dtp = sender as DateTimePicker;
    if (e.KeyCode == Keys.Enter)
    {
        if (dtp?.Name[dtp.Name.Length - 1] == '1')
            dateTimePicker2.Focus();
        else dateTimePicker1.Focus();
    }
}

只是不要忘记在DateTimePickrs的属性窗口中更改KeyDown事件的值,以指向此事件。

 类似资料:
  • 我有一个windows窗体,我需要当用户按Enter时将焦点设置为下一个控件。任何想法如何实现这一点(不使用关键新闻事件)

  • 我希望enter键的作用类似于JTable上的tab键。我知道这个问题已经问过几次了,我使用了本页中找到的解决方案:使用Enter键就像JTable上的Tab键一样。 因此,当我按下tab键时,下一个单元格被聚焦,其中的文本被选中,但当我键入enter键时,第一次单元格松开焦点,第二次enter键时,下一个单元格获得焦点,其中的文本被选中。 所以我的问题是:有没有一种方法可以让第一个从单元格中输入

  • 我正在写一个自动热键脚本,它可以摆弄一些Photoshop窗口和控件。 我需要能够解除当前焦点控件(比如Edit3)的焦点,这样之后就没有控件有焦点了(我可以解释为什么必要时我需要这么做,但这似乎无关紧要,我只需要解除所有控件的焦点)。 AHK的ControlFocus命令不提供这样的选项。 我尝试使用这样的Windows消息: 但它什么都没用。相比之下,另一种方法的效果与预期一致,并将重点放在控

  • 我有一个。其中有一个按钮()。我为它编写了单击按钮事件:

  • 问题内容: 我使用此代码在iOS自定义相机App中实现了“轻按一下”功能,但无法正常工作。这是代码 问题答案: 我不知道为什么这样做,但确实如此。

  • 问题内容: 我有一个用Java编写的控制台程序,该程序可以响应单键按下,但是用户不按Enter。 我正在打乒乓球,所以需要上下键来移动蝙蝠的东西。 欢迎使用其他方法!(除了制作GUI外) -编辑: 我将只在UNIX系统(OSX和Linux)上运行程序,因此我可以通过以下方式将终端置于“原始”模式: 当我在运行程序之前在控制台中键入该命令时,它将起作用!但是我需要Java自动执行此操作,因此我尝试了