WinForm 按钮保持焦点

发布于 2024-09-26 02:09:40 字数 275 浏览 4 评论 0原文

我有一个带有多个按钮的 winform,当我点击一个按钮时,它会运行 Click 事件处理程序,然后该按钮保持选中状态,因此如果我点击键盘上的 ENTER 键,它将运行该按钮的 Click 事件处理程序再次。

我想这是按钮的默认行为(单击时保持选中状态),但我找不到删除该行为的方法。

我尝试了另一个控件的方法 Focus()Select(),但按钮仍然处于 Selected/Focused/Active 状态,

有什么帮助吗?

I have a winform with several buttons, when I hit a button, it runs the Click Event Handler, and then the button keeps selected, so if then I hit the ENTER key in the keyboard, it will run the Click event handler for that button again.

I guess this is the default behavior for a button (keeping it selected when its clicked) but I cant find a way to remove that behavior.

I tried the methods Focus() and Select() for another control, but the button is still Selected/Focused/Active

any help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

注定孤独终老 2024-10-03 02:09:41

如果您不希望用户在事件仍在运行时再次按下 Enter 并触发该事件,您可以在运行处理程序代码时禁用该按钮(使用finally以防万一出现问题)

编辑:

private void btnOk_Click(object sender, EventArgs e)
{
    btnOk.Enable = false;
    try
    {
        // do stuff
    }
    finally
    {
        btnOk.Enable = true;
    }
}

If you don´t want a user to hit enter and fire the event again while it is still running you can disable the button while running the handler code (with a finally in case something messes up)

Edit:

private void btnOk_Click(object sender, EventArgs e)
{
    btnOk.Enable = false;
    try
    {
        // do stuff
    }
    finally
    {
        btnOk.Enable = true;
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文