WinForms接受按钮烦恼

时间:2009-02-25 01:33:59

标签: winforms button

我有一个基本面板类,其中包含三个按钮。我在两个不同的配置对话框中使用此基类的子类。两个对话框都有一个OK按钮设置为接受按钮。

在其中一个对话框中,如果我单击基类中的一个按钮,焦点会立即返回到“确定”按钮,因此按Enter键可以按预期工作。

在另一个对话框中,焦点仍然是基类中的按钮(如果已启用),或者如果不再启用单击的按钮,则移动到下一个按钮。

没有代码可以处理任何派生类中的基类按钮单击事件。

想点什么?

2 个答案:

答案 0 :(得分:1)

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

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

无论如何,我认为通常最好坚持使用Windows用户界面指南而不是自动将输入焦点更改回OK按钮。如果用户点击其他按钮之一,焦点应保持在那里直到他们移动它。

答案 1 :(得分:0)

我不知道你正在使用什么语言,但是按钮类应该有一个焦点方法,它会高亮显示它以进入按下。在单击方法中,或者当您打开对话框时,您可以调用此方法使您想要的按钮获得表单的焦点

c#
myButton.Focus();