焦点处理
1.什么是焦点?(focus)

当前操作的对象.
(比如有多个文本框,你正在编辑的文本框即为焦点)

在程序设计中,一个对象拥有焦点,表明它可以接收来自键盘或鼠标的用户输入。

2.并非所有的控件都具有接收焦点的能力

通常是可以和用户交互的控件才能接收焦点;如:Button、TextBox等.

而只能显示信息的控件没有获得焦点的能力,如:Label、PictureBox等.

3.焦点的显示

(1)窗体:

获得焦点的窗体,通常具有蓝色的标题栏。如图

(2)控件:

显示一个闪烁的光标(如 TextBox)如图

或突出显示(如Button周围会出现一个虚线框)如图

4.焦点的设置

(1)窗体

1.通过用户的选择设置焦点
        鼠标:单击窗体或任务栏的窗体图标,使窗体获得焦点。
        键盘:在按住Alt键的同时按Tab键切换,直到选中想要使之获得焦点的窗体。

2.利用窗体对象的方法设置焦点

在多窗体程序中,在主窗体中对从窗体对象调用Activate方法,使从窗体获得焦点。例如,可以在主窗体frmMain中的适当位置编写代码“frmSub1.Activate();”
       在MDI程序中,在父窗口中通过ActivateMdiChild方法来激活指定的子窗口使之获得焦点。例如,可以在父窗口frmParent中的适当位置编写代码“this.ActivateMdiChild(frmChild);”

多窗体程序中,窗体对象的焦点,一般在程序运行时设置。

(2)控件

只有当对象的EnabledVisible属性均为true时,才能接收焦点

1.通过用户的选择设置焦点

鼠标:单击窗体或任务栏的窗体图标,使窗体获得焦点。
        键盘:Tab键切换,直到选中想要使之获得焦点的窗体。如果控件对象有访问键或快捷键,也可以直接通过访问键或快捷键选择控件对象。

 2.利用控件对象的方法设置焦点

在适当位置编写代码  对象名.Focus();就能使该对象获得焦点。

3.利用控件对象的属性设置焦点

控件对象的TabIndex属性。

TabIndex属性:指示控件的Tab键顺序索引,也就是当按下Tab键时焦点在控件间移动的先后顺序。
       默认情况下,建立的第一个控件的TabIndex值为0,第二个控件的Tablndex值为1,依此类推。

可以在“属性”窗口中设置控件对象的TabIndex属性来改变该控件的Tab键顺序,也可以通过“视图”菜单的“Tab 键顺序”来查看和修改一个窗体上所有控件的Tab键顺序。

5.取消焦点
某个控件不需要获得焦点,只需将控件的TabStop属性设为false,便可将此控件从Tab键顺序中删除。

但它在实际Tab键顺序中的位置不变,只不过在按Tab键时这个控件将被跳过。
(TabStop属性指示是否可以使用Tab键为控件提供焦点。)