我遇到了这个问题......当我的表单打开时,会按下一个按钮。我不想让我专注。我在表单上放了一个小面板,它是不可见的,并将其设置为起始焦点(也设置为tabstop = false
)。但仍然......按钮是专注的。
可能是什么问题?
我试过了:
private void Form_Load(object sender, EventArgs e)
{
panel.Focus();
}
但仍然没有任何反应,按钮仍然聚焦。
答案 0 :(得分:3)
Panel控件派生自ContainerControl。这为作为其他控件的容器的控件提供了通用行为。其中包括不曾想要关注焦点。如果你试图给他们焦点,他们会立即将它传递给儿童控制。
有一个很好的理由,用户需要能够看到哪个控件具有焦点。所以他知道键盘敲击的位置。并且容器控件没有办法显示它。他们也没有做任何合理的击键。您当然可以使用Panel控件来使其成为一个可调焦的控件,this answer显示如何。
但是要关注为什么你想让用户感到困难。也许你有点专注于焦点矩形的“瑕疵”?如果你真的想隐藏它,那么你可以,这很简单。只需添加一个虚拟按钮,并为其指定一个负位置属性,并将TabIndex设置为0.这会将其移出窗口,对用户不再可见。但仍然能够成为焦点。解决“瑕疵”问题,但存在严重混淆用户的风险。
答案 1 :(得分:1)
您可以更改控件的TabIndex
,以便将其集中在您希望的订单
答案 2 :(得分:0)
我认为您的小组无法集中注意力。在面板内尝试控制。
答案 3 :(得分:0)
如果您希望在打开表单时该按钮不具有焦点,则需要更正TabIndex
属性。 TabIndex
属性有一个整数作为值,它指定按下Tab键时控件获得焦点的顺序。如果控件将TabIndex
设置为0,则将其更改为其他值。
或者
您还可以将控件TabStop
属性设置为false。
答案 4 :(得分:0)
表单名为AcceptButtons
的表单将其设置为(none)