【问题标题】:Winform program started, and button1 focused, why? [closed]Winform程序启动,并且button1聚焦,为什么? [关闭]
【发布时间】:2013-04-03 22:20:30
【问题描述】:

我有一个 C# winform 应用程序。当我构建它时,焦点在我的button1上,为什么?任何地方都没有这个代码......如果我直接写到form1_load的方法这个:button2.Focus(),没有改变......

我认为这将是一个非常简单的问题......

【问题讨论】:

  • 如果这是一个非常简单的问题,那么你几乎已经回答了它。它应该是一个简单的解决方法。通过你的代码和属性设置,提示USE THE DEBUGGER
  • 对于这类问题,使用调试器并不是一个好的提示。任何涉及焦点的事情都不能用调试器轻松调试,因为引入调试器会产生影响。您需要了解实际情况。
  • Cody 除了声明i think it will be a very easy question之外,任何提示都是一个很好的提示

标签: c# .net winforms


【解决方案1】:

是的,这是一个简单的问题,当您在窗体表面添加控件时,Visual Studio IDE 会自动定义控件的 TabIndex 属性。

您可以手动更改此TabIndex 属性,或者更好的是,使用菜单View,然后使用Tab Order 子菜单。
窗体表面上的每个控件都将在左上角显示一个带有数字的小蓝色框,您可以单击该数字来更改 TabIndex 顺序。这样做更容易解释。

显示表单时,TabIndex=0 且支持焦点的控件将最先获得焦点。 (标签和其他无法聚焦的控件被排除在外)

【讨论】:

  • 是的,真的很棒,谢谢!如果我在示例项目中尝试赢得 1 个表单,2 个按钮,它就可以工作。但我有一个更困难的,它有大约 8 个按钮,还有一个面板,它是从代码设置的,也不是从设计视图中设置的……我想关注这个,因为-我认为-它是不可见的。 ..所以主要目标:当程序启动时,我希望看不到焦点组件...
  • 你正在打破用户界面设计的一些普遍接受的法则。就是说,您可以尝试在表单限制之外放置一个没有附加点击事件的按钮,并将 tabindex 设置为零。再次不要那样做。
  • 这是一个必须解决的问题:它是自己的面板类,它是双缓冲的,并且是从工厂类继承的。我不能完全理解你,因为我的英语......嗯,我现在明白你了......这是唯一的方法?一个没有功能的附加按钮,超出了表单限制,并且标签索引为零?比如 panel1.Focus() 方法为什么不能解决问题,在 form1_load() 方法中?
  • 我解决了,提示:TAB ORDER,谢谢!我也有一个组合框,我为这个渲染了 0,如果程序运行,焦点在那个组合框上,但看起来不是那样的......所以太棒了!大个子!
猜你喜欢
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-06
  • 2017-03-13
  • 2016-04-01
  • 2017-09-18
相关资源
最近更新 更多