不要让按钮聚焦在表单打开上
本文关键字:表单 聚焦 按钮 | 更新日期: 2023-09-27 18:15:57
我有这个问题…当我的表单打开时,一个按钮被聚焦。我不想让它影响我的注意力。我在表单上放了一个小面板,这是不可见的,并将其设置为起始焦点(也设置tabstop = false
)。但仍…按钮聚焦。
有什么问题?
I tried:
private void Form_Load(object sender, EventArgs e)
{
panel.Focus();
}
但是仍然没有任何反应,按钮仍然聚焦。
Panel控件派生自ContainerControl。它为充当其他控件容器的控件提供通用行为。其中包括不想要占据焦点。如果你试图给他们焦点,他们会立即把它传递给子控件。
有一个很好的理由,用户需要能够看到哪个控件有焦点。所以他知道键盘敲击的方向。容器控件没有办法显示这个。它们也不会对击键做任何合理的事情。你当然可以修改Panel控件,使其成为可对焦控件,下面的答案说明了怎么做。
但是要注意为什么要让对用户来说很困难。也许你有点过于关注焦点矩形的"瑕疵"了?如果你真的想隐藏它,那么你可以,这很简单。只需添加一个虚拟按钮,并给它一个负位置属性和TabIndex为0。这将它移出窗口,不再对用户可见。但仍能集中注意力。解决了"瑕疵"问题,但有可能严重混淆用户。
您可以更改控件的TabIndex
,使其以您希望的顺序集中
我认为你的小组不能集中注意力。
如果你想让按钮在打开表单时没有焦点,那么你需要纠正TabIndex
属性。TabIndex
属性有一个整数作为值,它指定了当tab键被按下时控件获得焦点的顺序。如果控件的TabIndex
设置为0,则将其更改为其他值。
或
您也可以将控件TabStop
属性设置为false。
属性名称为AcceptButtons
的形式设置为(none)