【问题标题】:Buttons Are Automatically Selected (how to turn this off?)按钮是自动选择的(如何关闭它?)
【发布时间】:2011-04-22 12:28:57
【问题描述】:

我有 winform 按钮,当您加载表单时,会选择某个按钮。我的意思是,如果按下“输入”,则按下按钮。

我怎样才能改变我的按钮,让他们不再这样做?

【问题讨论】:

  • 这不是“某些按钮”.. 它是“某些按钮”。 :)

标签: c# winforms button


【解决方案1】:

您的 Tab 键顺序是按照您在表单上添加控件的顺序设置的。如果您的第一个可以按下/选择/编辑的控件是被按下的按钮,则在加载表单时焦点将自动位于该按钮上。

您可以通过将焦点设置到其他控件来作弊(也许哪个不可见?!提示 * 提示!)以避免首先选择按钮。

但还要确保按钮不是表单的 AcceptButton。

【讨论】:

  • 更改 TabIndex 对我的问题没有帮助,我会尝试手动设置焦点,谢谢!
  • TabIndex 是一个复杂的东西。如果您尝试在属性中手动编辑它,即使那样也不能保证它应该工作。最好的方法是在 Visual Studio 的“编辑”菜单中启用“Tab Order”,然后按您想要的控件顺序开始单击。
【解决方案2】:

Nayan 已经触及了两个概念并重新运行:

1) 接受按钮 2)标签顺序

我还要添加一个,然后尝试解释这三件事之间的关系:

3) 专注

Focus 表示子控件具有“键盘焦点”。当控件具有焦点时,它会接收键盘输入并对其做出响应。通过用鼠标单击控件或使用 Tab 键来更改焦点。

Tab 顺序是按下 Tab 键时控件获得焦点的顺序。它还决定了哪个控件最初获得焦点(Tab 顺序中的第一个)。

AcceptButton 概念有点混杂。如果将表单的 AcceptButton 属性设置为按钮控件,则当用户按下 Enter 键且焦点位于不处理 Enter 键本身的任何控件上时,就会按下该按钮。通常,表单上的“确定”按钮设置为 AcceptButton,以便用户可以输入数据并按 Enter 作为按下确定按钮的快捷方式。

【讨论】:

  • 呵呵.. 我也提到了 Focus =))
  • 你知道.. 我的意思是把每一个与它们如何影响每个控件的选定外观联系起来,但我完全没能完成。由于 OP 似乎已经发布了他们自己的答案,我不会费心完成它。
【解决方案3】:

您需要在表单上设置acceptbutton。

【讨论】:

  • AcceptButton 设置为 (none),还有其他可能导致此问题的原因吗?
  • 哼,您是在使用任何复合控​​件还是第三方控件。
  • 我只是在使用在 Visual Studio 中从头开始构建的 WinForms。是的,这很奇怪,如果我设置了 AcceptButton,我可以看到它正在我的编辑器中设置(按钮被选中),当我将它设置回(无)时,没有选择按钮,但是当我运行我的程序时,按钮是在不应该被选中时选择...
【解决方案4】:

Element.Select() 对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 2011-05-10
    • 2019-09-02
    相关资源
    最近更新 更多