WinForms接受按钮烦恼

WinForms接受按钮烦恼,winforms,button,Winforms,Button,我有一个基本的panel类,其中有三个按钮。我在两个不同的配置对话中使用这个基类的子类。两个对话都有一个OK按钮设置为accept按钮 在其中一个对话框中,如果我单击基类中的一个按钮,焦点将立即返回到OK按钮,因此按enter键可以正常工作 在另一个对话框中,如果已启用,则焦点与已单击的基类中的按钮保持一致;如果已单击的按钮不再启用,则焦点移到下一个按钮 在两个派生类中都没有处理基类按钮单击事件的代码 有人有想法吗?我不知道您使用的是什么语言,但是button类应该有一个焦点方法,它可以提高en

我有一个基本的panel类,其中有三个按钮。我在两个不同的配置对话中使用这个基类的子类。两个对话都有一个OK按钮设置为accept按钮

在其中一个对话框中,如果我单击基类中的一个按钮,焦点将立即返回到OK按钮,因此按enter键可以正常工作

在另一个对话框中,如果已启用,则焦点与已单击的基类中的按钮保持一致;如果已单击的按钮不再启用,则焦点移到下一个按钮

在两个派生类中都没有处理基类按钮单击事件的代码


有人有想法吗?

我不知道您使用的是什么语言,但是button类应该有一个焦点方法,它可以提高enter键的使用效率。在click方法中,或者在打开对话框时,可以调用此方法以使所需的按钮获得窗体的焦点

c#
myButton.Focus();

我不知道您使用的是什么语言,但是button类应该有一个focus方法,它可以为enter pressing提升它。在click方法中,或者在打开对话框时,可以调用此方法以使所需的按钮获得窗体的焦点

c#
myButton.Focus();

我不确定您的第一个对话框中发生了什么,因为它似乎没有按照我预期的方式运行。第二个对话框听起来更像标准行为

在Windows窗体中,AcceptButton属性仅在按Enter键不会导致任何操作时才起作用。在这两个示例中,单击按钮应将焦点移动到该按钮,然后按Enter键将导致再次单击该按钮


在任何情况下,我认为通常最好遵守Windows用户界面指南,不要自动将输入焦点更改回OK按钮。如果用户单击其他按钮之一,焦点应保持在那里,直到他们移动它。

我不确定您的第一个对话框中发生了什么,因为它似乎没有按我预期的方式运行。第二个对话框听起来更像标准行为

在Windows窗体中,AcceptButton属性仅在按Enter键不会导致任何操作时才起作用。在这两个示例中,单击按钮应将焦点移动到该按钮,然后按Enter键将导致再次单击该按钮

在任何情况下,我认为通常最好遵守Windows用户界面指南,不要自动将输入焦点更改回OK按钮。如果用户单击其他按钮之一,焦点应保持在那里,直到他们移动它