不希望按钮专注于表单打开

时间:2013-05-29 11:25:54

标签: c# winforms

我遇到了这个问题......当我的表单打开时,会按下一个按钮。我不想让我专注。我在表单上放了一个小面板,它是不可见的,并将其设置为起始焦点(也设置为tabstop = false)。但仍然......按钮是专注的。

可能是什么问题?

我试过了:

private void Form_Load(object sender, EventArgs e)
{
   panel.Focus();
}

但仍然没有任何反应,按钮仍然聚焦。

5 个答案:

答案 0 :(得分:3)

Panel控件派生自ContainerControl。这为作为其他控件的容器的控件提供了通用行为。其中包括曾想要关注焦点。如果你试图给他们焦点,他们会立即将它传递给儿童控制。

有一个很好的理由,用户需要能够看到哪个控件具有焦点。所以他知道键盘敲击的位置。并且容器控件没有办法显示它。他们也没有做任何合理的击键。您当然可以使用Panel控件来使其成为一个可调焦的控件,this answer显示如何。

但是要关注为什么你想让用户感到困难。也许你有点专注于焦点矩形的“瑕疵”?如果你真的想隐藏它,那么你可以,这很简单。只需添加一个虚拟按钮,并为其指定一个负位置属性,并将TabIndex设置为0.这会将其移出窗口,对用户不再可见。但仍然能够成为焦点。解决“瑕疵”问题,但存在严重混淆用户的风险。

答案 1 :(得分:1)

您可以更改控件的TabIndex,以便将其集中在您希望的订单

答案 2 :(得分:0)

我认为您的小组无法集中注意力。在面板内尝试控制。

答案 3 :(得分:0)

如果您希望在打开表单时该按钮不具有焦点,则需要更正TabIndex属性。 TabIndex属性有一个整数作为值,它指定按下Tab键时控件获得焦点的顺序。如果控件将TabIndex设置为0,则将其更改为其他值。

或者

您还可以将控件TabStop属性设置为false。

TabIndexTabStop属性的文档。

答案 4 :(得分:0)

表单名为AcceptButtons的表单将其设置为(none)