【问题标题】:KeyDown not picking up 'Return' key C#KeyDown没有拿起'Return'键C#
【发布时间】:2012-01-31 23:08:50
【问题描述】:
    private void idTextEdit_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Return)
        {
            e.Handled = true;
            SearchButtonClick(sender, EventArgs.Empty);
        }
    }

我有一个文本框,其中每次按键都会触发此代码检查,但 Enter/Return 键除外,由于某种原因,它什么也不做。文本框上的活动光标消失了,所以我认为它会在 keydown 事件触发之前改变焦点,但我不确定。如何获得返回键以停止取消选择框并注册为按键。此外,没有其他代码可以将回车键设置为具有不同的功能,而且它是一个非常简单的用于测试的文本框屏幕。

【问题讨论】:

  • 我刚试过这个,我的消息框就会显示出来。
  • 只是在这里检查:您是否将事件处理程序设置为使用此代码?此外,您是否尝试在您的if 条件上放置断点,然后按 Enter/Return 键查看实际值是多少?有时你会得到一个值的组合。如果是这种情况,您将需要使用位逻辑:if ((e.KeyCode & Keys.Return) == Keys.Return)...

标签: c# winforms visual-studio


【解决方案1】:

如果您设置了AcceptButton,那么您将获得您所看到的行为。

我用我的示例表单尝试了您的代码,它按预期工作。

然后我将AcceptButton 设置为其中一个按钮,文本框停止响应Enter。在文本框上设置AcceptsReturn 无效。

【讨论】:

    【解决方案2】:

    AcceptsEnter 属性设置为true

    【讨论】:

    • 我刚刚尝试过这个,它适用于 AcceptsReturn 设置为 false。
    • @ChrisF:如果表单上有默认按钮,可能会有所不同。
    • @Chris,我相信如果设置了 AcceptButton,它的行为会有所不同。
    • 那是我的另一个想法 - 我还在检查它。
    • 我以前从未见过 AcceptsEnter,我该如何设置呢?是不是在设计器中就像在 this.idtextedit.???.AcceptsEnter 我如何检查或设置这个?
    猜你喜欢
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2020-08-05
    相关资源
    最近更新 更多