决定一个控件是否可以被Focus的条件有两个:
- 一个是控件可见(bool visible = SafeNativeMethods.IsWindowVisible(new HandleRef(window, Handle));),
- 另一个是控件是可用的(bool enabled = SafeNativeMethods.IsWindowEnabled(new HandleRef(window, Handle)); )。
只有这两个条件同时具备时,才能支持控件设置焦点。
这次是设置成功了。那么我们能否在Form_Load中也设置成功呢?肯定能啊,只要在调用Focus方法前让控件编程Visible就可以了。我们可以在Form_Load方法中加入一行this.Show();代码,如下:
private void Form1_Load(object sender, EventArgs e)
{
this.txtTestTextBox.Text = "测试一下";
this.Show();
this.txtTestTextBox.Focus();
}
这下界面显示出来时,焦点就在TextBox上了。说了这么多,其实就明白了一件事儿,一个控件要具有焦点,需要两个条件:一个是控件是可见的,另一个是控件是Enable状态的。
浙公网安备 33010602011771号