有时候我们想在WinForm窗口显示后自动为某个控件设置焦点,于是我们在Load事件中为该控件设置焦点
private void FrmMag_Load(object sender, EventArgs e)
{
this.txtKey.Focus();
}
一切都很简单,但实际执行起来,你会发现有时候这个设置无效,我也不知道为什么会无效,不计较这个。于是改用在Activated事件中设置焦点
private void FrmMag_Activated(object sender, EventArgs e)
{
this.txtKey.Focus();
}
这个是有效果了,但你会发现,每次激活这个窗口时(从另一个windows窗口切换到这个窗口),都会为txtKey设置焦点,有时候我只是想出去复制东西,窗口切回时焦点又到txtKey中去了。
最好的方法,是在Shown事件中设置焦点
private void FrmMag_Shown(object sender, EventArgs e)
{
this.txtKey.Focus();
}
Shown事件只在窗口第一次显示时发生,这样就很好的符合我们的需求了。