如何将焦点设置为Windows窗体应用程序中的控件?

Kan*_*ini 29 c# focus initialization winforms

在Windows窗体应用程序中,何时编写代码以在启动应用程序时以及随后在调用函数后将焦点设置为控件?

例如,如果我有一个DropDownList,一个TextBox和四个按钮,我希望将Focus设置为DropDownList,我在哪里编写代码?

要将焦点设置为应用程序启动时的特定控件,我可以将选项卡索引设置为DropDown(具有最小值,假设TabStop属性设置为True).

现在,如果用户完成一个操作(比如任何一个Click Button事件),然后我更新了DropDown,之后如果我想设置焦点...我可以这样做

MyDropDownList.Focus()
Run Code Online (Sandbox Code Playgroud)

NB:问题更多的是关于何处,而不是如何

Han*_*ant 60

到目前为止,最简单的解决方案是正确设置TabIndex属性,以便"MyDropDownList"控件具有最低的索引.下一个方法是在构造函数中执行它.但是你必须使用Select(),Focus()方法还不能工作,因为控件直到稍后才会变得可见.

Public Sub New()
    InitializeComponent()
    MyDropDownList.Select()
End Sub
Run Code Online (Sandbox Code Playgroud)

也适用于Load事件.Focus()开始在Shown事件中工作.


Pau*_*Yao 8

当父窗口被激活时(即收到“Activated”事件时),将焦点设置到您想要焦点所在的子控件上。

private void Form_AddAppID_Activated(object sender, EventArgs e)
{
    textID.Focus();
}
Run Code Online (Sandbox Code Playgroud)

请注意,Tab 顺序与焦点开始的位置无关。相反,Tab 键顺序用于决定当用户按下 Tab 键时焦点如何转移。