我有这个问题......当我的表单打开时,一个按钮被聚焦。我不想让我专注。我在表单上放了一个不可见的小面板,并将其设置为起始焦点(也设置tabstop = false
)。但仍然......按钮是集中的。
可能是什么问题呢 ?
我试过了 :
private void Form_Load(object sender, EventArgs e)
{
panel.Focus();
}
但仍然没有任何反应,按钮仍然是焦点。
Panel 控件派生自 ContainerControl。它为充当其他控件容器的控件提供了通用行为。其中包括不想成为焦点。如果您尝试给他们焦点,他们会立即将其传递给子控件。
这是有充分理由的,用户需要能够看到哪个控件具有焦点。所以他知道键盘敲击的去向。并且容器控件没有办法显示它。他们也没有通过击键做任何合理的事情。您当然可以修改面板控件以使其成为可聚焦的控件,此答案说明了如何。
但是请注意为什么要让用户感到困难。也许你有点关注焦点矩形的“瑕疵”?如果你真的想隐藏它,那么你可以,这很简单。只需添加一个虚拟按钮并给它一个负的 Location 属性和一个 0 的 TabIndex。这会将其移出窗口,不再对用户可见。但仍然能够集中注意力。解决了“瑕疵”问题,但存在严重混淆用户的风险。
您可以更改TabIndex
您的控件,使其集中在您希望的顺序
我认为您的小组无法集中注意力。在您的面板中尝试一个控件。
名为AcceptButtons
表单的属性将其设置为(none)