C# 如何从单个控件中移除焦点?

C# 如何从单个控件中移除焦点?,c#,.net,winforms,C#,.net,Winforms,在我的C#WinForms程序中,我有一个窗体,上面只有一个按钮控件。 默认情况下,该按钮控件接收窗体上的焦点。但我不想让按钮永远聚焦 是否有解决方案,即使是需要调用非托管API的解决方案?在表单Load事件中,您可以将焦点设置在其他控件上 如果不希望控件通过键盘获得焦点,也可以将其TabStop属性设置为false 如果希望在打开表单时按钮不具有焦点,则需要更正TabIndex属性。TabIndex属性有一个整数作为值,指定按下tab键时控件获得焦点的顺序。如果控件的TabIndex设置为0,

在我的C#WinForms程序中,我有一个窗体,上面只有一个按钮控件。 默认情况下,该按钮控件接收窗体上的焦点。但我不想让按钮永远聚焦


是否有解决方案,即使是需要调用非托管API的解决方案?

在表单
Load
事件中,您可以将焦点设置在其他控件上

如果不希望控件通过键盘获得焦点,也可以将其
TabStop
属性设置为false

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


检查MSDN上的文档和属性。

使用按钮的
TabStop
属性

button1.TabStop = false;

正如您所注意到的,我在表单的加载事件中将按钮的TabStop属性设置为false。成功了。但当用户点击按钮时,它会将焦点放在自己身上。如何再失去它?我的表格上只有这个按钮(和一些标签)。谢谢。@user434186,当用户单击按钮时,您可能有一些代码可以处理此问题,只需添加一行来聚焦其中一个标签,如:label.focus(),它应该可以工作。啊!它起作用了。当用户单击我设置的标签焦点上的按钮时。我不知道标签也能获得焦点!谢谢你,阿德里安!无法使用对象发送者
专用无效按钮1\u单击(对象发送者,事件参数e){(发送者作为按钮)。TabStop=false;}