Label可以获得焦点吗?

Dar*_*ria 5 .net c# label focus winforms

关于我的大学对C#的测试,我有一个问题.标签可以得到重点吗?正如我在MSDN网站上看到的那样,所有控件都可以获得焦点,但其中一些不可选.因此,在我看来,正确的答案是"标签可以获得焦点,但无法选择".Label也有一个Focus()方法.拜托,帮帮我理解.感谢名单.

Fré*_*idi 8

文档:

如果满足以下所有条件,则可以选择控件并接收输入焦点:SelectableControlStyles设置为true,它包含在另一个控件中,并且其所有父控件都可见并启用.

由于Label控件不可选,因此即使它继承了Focus()方法,也无法接收输入焦点Control.因此,答案是否定的.

  • 是的,这是正确的答案."Focus"或"CanFocus"属性的存在实际上是无关紧要的.Windows API(WinForms所基于的)有一个关于哪些控件可以获得焦点的硬规则.标签(用于显示*静态*文本)是*永远不会*获得焦点的标签之一.没有例外. (2认同)

Waq*_*aja 6

是的Focus(),Label上有一个方法,是的,它是绝对正确的; 但行为不同.让我试着解释一下

Label可以与某个输入控件相关联,例如用户名文本字段的标签,因此有Associated Control标签的概念.msdn上的AssociatedControlID

因此,您可以将输入控件与标签相关联,并且每当选择标签时,控件都会传递给关联的输入控件.

这里的示例单击登录框中的电子邮件或密码标签,看看发生了什么,类似地,如果在标签上调用焦点方法,焦点将传递给关联的控件.

  • @Daria:对于WinForms,当您尝试将焦点设置为"Label"控件时,具有下一个选项卡索引的控件将获得焦点.例如,您可以使用标签索引为0的标签和标签索引为1的文本框.当您尝试将焦点设置为标签时,文本框将自动获得焦点. (4认同)