vb按键的gotfocus事件和click事件有什么区别
展开全部
这两个事件是经常同是发生的,如当单击鼠标时往往先后触发,但两者有明显的不同。
click事件是鼠标单击时系统将相关消息传递给窗口而触发的,直接与鼠标的单击动作相关。窗口的代码一般是编程工具自动提供的框架,往往内定会获得焦点,从而触发getfocus,但在程序设计时我们可以修改代码不让窗口获得焦点,从而不支触发getfocus事件。
直接就getfocus事件来说,键盘操作也可触发该事件(比如按Alt+Tab切换窗口,就会让不同的窗口获得焦点,按Tab就会让不同的控件获得焦点),也可直接用SetFocus直接让该窗口获得焦点,也就是说看起来不需要操作者的任何操作也是可以获得焦点的。
所谓焦点,我们可以理解为系统的消息传递的对象,也就是鼠标,键盘等操作信息的目的点。
比如修改桌面上的文件名,假定初始的焦点就是桌面本身,当我们第一次单击桌面图标时,首先桌面将获得这个消息,同时通过座标判断单击的位置为一图标,就会将焦点定位到该图标,此时该图标即被选中。这时如果我们接着单击文件名,这时单击的消息直接传给了图标,负责图标管理的代码发现单击的位置是文件名标签,就会将标签转为活动状态,并且进一步将焦点赋给这个活动的文本框。这时如果我们敲键盘上的字,该消息就会直接传递给这个文本框,从而输入了文字。当我们在桌面空白处单击时,桌面发生click事件,会主动获得焦点,而文本框发生失去焦点的事件,就会主动转换到不可编辑的状态,同时真正将磁盘上的文件名改过来。
click,LostFocus,getfocus这些事件当是由于操作者的操作产生时,与系统消息机制有关,但也可以通过代码直接产生,相当于模拟用户操作,当然能够直接getfocus就不需要click了,因为前者是直接的,后者还不一定能达到目的。但不可能存在直接的LostFocus,这在逻辑上讲不通,因为焦点总是存在的,主动失支焦点那么焦点交给谁?只能通过让别的窗体得到焦点来间接产生该事件。但是可以重写这些事件发生时的“反应”代码onClick, onLostFocus, onGetFocus,从而对该事件的发生做出反应。
click事件是鼠标单击时系统将相关消息传递给窗口而触发的,直接与鼠标的单击动作相关。窗口的代码一般是编程工具自动提供的框架,往往内定会获得焦点,从而触发getfocus,但在程序设计时我们可以修改代码不让窗口获得焦点,从而不支触发getfocus事件。
直接就getfocus事件来说,键盘操作也可触发该事件(比如按Alt+Tab切换窗口,就会让不同的窗口获得焦点,按Tab就会让不同的控件获得焦点),也可直接用SetFocus直接让该窗口获得焦点,也就是说看起来不需要操作者的任何操作也是可以获得焦点的。
所谓焦点,我们可以理解为系统的消息传递的对象,也就是鼠标,键盘等操作信息的目的点。
比如修改桌面上的文件名,假定初始的焦点就是桌面本身,当我们第一次单击桌面图标时,首先桌面将获得这个消息,同时通过座标判断单击的位置为一图标,就会将焦点定位到该图标,此时该图标即被选中。这时如果我们接着单击文件名,这时单击的消息直接传给了图标,负责图标管理的代码发现单击的位置是文件名标签,就会将标签转为活动状态,并且进一步将焦点赋给这个活动的文本框。这时如果我们敲键盘上的字,该消息就会直接传递给这个文本框,从而输入了文字。当我们在桌面空白处单击时,桌面发生click事件,会主动获得焦点,而文本框发生失去焦点的事件,就会主动转换到不可编辑的状态,同时真正将磁盘上的文件名改过来。
click,LostFocus,getfocus这些事件当是由于操作者的操作产生时,与系统消息机制有关,但也可以通过代码直接产生,相当于模拟用户操作,当然能够直接getfocus就不需要click了,因为前者是直接的,后者还不一定能达到目的。但不可能存在直接的LostFocus,这在逻辑上讲不通,因为焦点总是存在的,主动失支焦点那么焦点交给谁?只能通过让别的窗体得到焦点来间接产生该事件。但是可以重写这些事件发生时的“反应”代码onClick, onLostFocus, onGetFocus,从而对该事件的发生做出反应。
展开全部
首先要明白“焦点”这个概念,当一个窗口,或按钮获得焦点,你会看到窗口最上边的标题栏是正蓝色(当然看你设置了),其他的没有获得焦点的窗口,标题栏会有一层白色“雾”;按钮获得焦点,你会看到有个亮的边框,或其他的提示。总之,当一个窗口或按钮或其他,获得焦点后,你所有的操作,特别是键盘,将会针对具备焦点的对象而言。不知道是不是明白了焦点。
那么,gotfocus事件,就是当窗口,或按钮,或其他,获得焦点时触发的事件,那么你就可以在这个事件里面写相关的程序了,比如,文本框获得焦点,你可以马上提示,这里应该输入什么样的东西等等。。。。。。
click就不同了,他必须是鼠标点击,或者是获得焦点的按钮,按空格(不一定都这样)时触发的,相当于是只有按鼠标了才触发。
试试吧,祝你好运
那么,gotfocus事件,就是当窗口,或按钮,或其他,获得焦点时触发的事件,那么你就可以在这个事件里面写相关的程序了,比如,文本框获得焦点,你可以马上提示,这里应该输入什么样的东西等等。。。。。。
click就不同了,他必须是鼠标点击,或者是获得焦点的按钮,按空格(不一定都这样)时触发的,相当于是只有按鼠标了才触发。
试试吧,祝你好运
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只有能获得焦点控件在获得焦点时才能触发gotfocus事件
而所有能点击的控件都可以响应click事件,同时这个控件又能够获得焦点的话,点击后他将获得焦点,并且接着触发gotfocus事件
而所有能点击的控件都可以响应click事件,同时这个控件又能够获得焦点的话,点击后他将获得焦点,并且接着触发gotfocus事件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、gotfocus事件是当该空间得到焦点时发生,click事件是在鼠标点击该控件时发生。
2、当鼠标点击某控件是一般焦点就会移到该控件,所以同时gotfocus事件也会发生。
3、控件得到焦点的方法除了用鼠标单击外,也可以用键盘tab键来实现。
4、焦点就是某一控件当前处于活动中,默认的发生的事件(比如键盘输入等)作用在该控件中。
2、当鼠标点击某控件是一般焦点就会移到该控件,所以同时gotfocus事件也会发生。
3、控件得到焦点的方法除了用鼠标单击外,也可以用键盘tab键来实现。
4、焦点就是某一控件当前处于活动中,默认的发生的事件(比如键盘输入等)作用在该控件中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
GotFocus可以利用Tab来实现,不用点击
而Click必须点击才能响应
而Click必须点击才能响应
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询