VB事件的焦点
在开发Windows程序时,有一个很重要的概念——焦点。所谓焦点,就是控件能够接受键盘输入的当前状态。只有具有焦点的控件,才能接受用户的键盘输
入;换一种说法也可以这样说,当前状态下用户所有的键盘输入只能被具有焦点的控件所获得。需要注意的是,焦点只是在程序运行时才有的概念,也就是说在设计
程序时,不能说某个控件具有焦点或不具有焦点。
焦点是对象接受用户鼠标操作或键盘操作的能力。当对象具有焦点时,才可以接受用户的操作。例如,在有就几个文本框的窗体中,只有具有焦点的文本框才能接受用户的输入。
要使用某个控件获得焦点,可以有如下三种方法:
(1)、使用键盘上的“Tab”键,将焦点移到相应的控件上。
(2)、使用鼠标直接在相应的控件上单击就可以了。
(3)、在程序代码中使用该控件的“SetFocus”方法。
对于绝大多数的控件,都具有“TabStop”属性和“Tablndex”属性。
其中,“TabStop”属性是用来设置是否允许
用户使用“Tab”键将焦点移到该控件上,默认情况下是允许的。“TabStop”属性有两个取值:“True”和“False”,若其值为“True”
时,允许使用“Tab”键将焦点移到该控件;否则,就不允许。但要注意,不管“TabStop'’属性的取值为“True”还是为“False”,使用鼠
标都可以将焦点转移到该控件。
“Iablndex”属性则是用来设置该控件的跳表顺序的。前面已经说过,使用“Tab”键可以将焦点从一个控件上转移到另一个控件上,在这个过程中就有
一个跳表顺序的问题。也就是说,当用户第一次按下“Tab”键时,焦点将会移到哪一个控件上;第二次按下“Tab”键时,焦点又会移到哪一个控件上等,这
个顺序就是跳表顺序。
在设计窗体时,跳表顺序是根据控件放人窗体的先后顺序来决定的。即第一个放人窗体的控件将最早获得焦点,以后每按一次“Tab”键,焦点就会转移到下一个放人窗体中的控件上。
在很多情况下,某些控件不需要使用“Tab”键将焦点移到该控件上或是不能根据控件放人窗体的先后顺序来决定跳表顺序,这时就需要设置“TabStop”
属性和“Tablndex'’属性了。“Tablndex”属性的取值是一个整数,从0开始依次类推,该属性的值小的将先获取焦点。
另外,还有两个与焦点相关的事件:“GotFocus”事件和“LostFocus”事件。当焦点从一个控件转移到另一个控件上时,前者即曾经拥有焦点的控件,将会发生“LostFocus”事件而后者即将会拥有焦点的控件,则会发生“GotFocus”事件。