4oml回回☒ 语文: 数学: 图21程序界面 要实现合法性检查功能,分别在Text1_LostFocus、Txt2 LostFocus事件过程中编写如 下代码: Private Sub Text1_LostFocus( If Not IsNumeric(Textl.Text)Then Textl.Text =" TextI.SetFocus End If End Sub Private Sub Text2_LostFocus() If Not IsNumeric(Text2.Text)Then Text2.Text= Text2.SetFocus End If End Sub 程序运行时,当在语文成绩框Text1中输入非数字字符时,焦点在数学成绩框Text2中 不停地闪动,程序产生死循环。这是因为:当Tet1输入结束,鼠标单击T2时,激发了 Text1_LostFocus事件,焦点到达Text2:但由于这时Text1中的数据是非数字的,必然会调 用Textl..SetFocus方法,使焦点从Tex2回到Textl;而又激发了Text2 LostFocus事件,此 时,Text2中还未输入任何数据,IsNumeric(Text2.Text)值为False,必然会调用Text2.SetFocus 方法,使焦点从Text1回到Text2,如此就产生了死循环 通过分析,只要Tex2有默认值就不会产生死循环,因此解决Tx1输入错时产生死循 环的方法是,把Private Sub Text2 LostFocus()事件过程中If的条件表达式改为:If Tex2.Text~"And Not IsNumeric(Tex2.Tex)Then即可。 5.如何声明局部变量和窗体级变量,它们有何区别? 在VB程序中,除了大量的控件对象外,还要使用一些变量,暂时存放一些中是结果。 这些变量的声明可以放在过程外的“通用声明”段,称为窗体级变量:也可以放在过程中 称为局部变量。初学者往往对一个变量应该声明为局部变量还是窗体级变量,感觉难以确定。 其实,只要弄清楚它们的区别,就容易把握了。 局部变量和窗体级变量的区别: 窗体级变量在木窗体的所有过程中均可使用:而局部变量仅在变量声明所在的过程中可 使用,也即随着本过程的执行而分配到存储空间,当执行到EndSub语句,分配的内存空间 被回收,变量的值也就丢失。 2.4典型例题 例2-1在窗体上,生成一个文本框,名称使用默认值,在属性窗口中将Tx属性设置 8 Ö× 07 [ 5)!!% 5)!! tRåö qrJ #- %+ 5)!! "1"! 0 799 %! 2$"1 2$%+ #- %+ 5)!! "1"! 0 799 %! 2$"1 2$%+ Ó?} [ñ*+ RÊÀdÚÚí} àá[d+ R h !^ "y#$%,&.'@J ÊÀ() _"QV } Áx< 5)!! àáâÏ *+Â&} Rde.dÚ ,Ç %! àá- .â /Áx< 5)!! ø } R01ÊÀ2÷de "! @ ! ,Ç %! àá- .â öø~"y<#$%, st3 4 i56~hÇ"y#$% 'ø ÊÀ7}"y#$ % . 8 #- %+ 5)!! tR "1 ðÏÔ@J"1 :;99,$"! 0 ¢
, CDEFGHIJK LIJMNODPQ+ [ R Ò<¦Ä$½ 09ÃÄ :}gé9R.(;, &9ÃÄ<=
·é[t½Ms<=Oo w@>ÃÄ
·é[tR w@?@ÃÄ,ÅABBÃÄ<=@?@ÃÄ0.>ÃÄ CDE·C, Î0 4FÑGEHç ~I8<, ?@ÃÄ>ÃÄçJ >ÃÄ[¼itRJ
?@ÃÄK[ÃÄ<=[tR
¢LM¼t¶?NâgOP ¶?â 2$%+ ñò NgP È.Q ÃÄ~RS, 1 8 [\ y*¼+ w56 [pRó !