开始敲机房的时候,不知道Public OK As Boolean有什么用,于是就没有写它,想着如果需要它而没有它的时候就会出现错误,这样就会知道它是干什么的了。
如今终于让我碰到它了!!
在sub main里有这样的代码:
1. Sub Main() 2. Dim fLogin As New frmLogin '实例化一个frmLogin登陆窗体 3. 4. fLogin.Show vbModal '以模态窗体形式显示登陆窗体 5. If Not fLogin.OK Then 6. '登录失败退出app(计算机应用程序) 7. End 8. End If 9. Unload fLogin '卸载登陆窗体 10. 11. Set fMainform = New frmMain '显示主窗体实例 12. fMainform.Show 13. 14. End Sub
运行到.OK的时候总是提示这样的错误:
于是上网查,有人说:
fLogin是窗体,当然没有fLogin.OK的方法了,除非你自定义了此方法。
做一个名称为FrmLogin的登陆窗体,设置用户名、密码等,窗体定义一个公共变量OK As Boolean,当用户名、密码正确时,变量OK=True,否则OK=False。
开始看的时候不理解。以为不是我想要的解决办法。于是跟同学对了对代码。同学从他那frmLogin窗体里找到了"Public OK As Boolean",而我这里没有。于是,在我的工程里试着添加了一下这句话。就可以了。再回过头来看,不觉惊讶这个答案就是为我准备的吗!?
问题成功解决,就逆推一下,猜测一下原理吧:main函数里是把登陆窗体做为一个类来用了。每次登陆都是实例化这个登陆窗体。(现在还不明白为什么不直接用,而要用类,用类有什么好处,不过后边应该会明白的,暂且搁起来。)从而登陆窗体这个类里有的方法,成员在实例化的时候都可以用。
而出错时,我的登陆窗体里没有OK这个成员,因此,也就不能调用,如图:
添加OK之后:
从这里,我又进一步了解了类在VB中的体现。
随着问题一点一点地解决,信心也随着来了,兴趣也随着来了。一定要坚信自己遇到的问题,以前必定有人遇到过。嘿嘿,找找前人的经验。耐心点,必定能找到的。自己一步步解决问题的乐趣真的让人如痴如醉啊。机房,一旦开始,都不想停下来。