多两个“0”带来的思考
在做学生管理系统中,由于并不太理解函数的意思,前几天就在程序的后面多写了两个0
Private Sub MDIForm_Load() '从注册表中取得上次关闭MDIForm时的大小 Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 30000) Me.Top = GetSetting(App.Title, "Settings", "MainTop", 30000) Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 80000) Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 80000) End Sub
原来的文章本应该是
Private Sub MDIForm_Load() '从注册表中取得上次关闭MDIForm时的大小 Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 300) Me.Top = GetSetting(App.Title, "Settings", "MainTop", 300) Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 800) Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 800) End Sub
当时并没有做任何记录,异地访问的过程当中,数据库能连上是没有任何问题,但是就是加载的登录界面就消失了,没有任何反应、提示错误之类的,后来在师傅的指导下,才发现这个问题,是由于多了两个0,是窗体的大小不能显示出来了,超出了屏幕的显示范围。我还以为真的消失了呢?
发现自己的问题:第一:没有及时的记录
第二:没有遵循严格的编程标准
第三:没有及时的学习相关的知识
第四:思考的还是太少,考虑不全,“为人民服务的宗旨”落实的不好
随后进行了相关知识的学习
Private Sub MDIForm_Load() '从注册表中取得上次关闭MDIForm时的大小 Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 3000) Me.Top = GetSetting(App.Title, "Settings", "MainTop", 30000) Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 80000) Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 80000) End SubPrivate Sub MDIForm_Unload(Cancel As Integer) If Me.WindowState <> vbMinimized Then SaveSetting App.Title, "Settings", "MainLeft", Me.Left SaveSetting App.Title, "Settings", "MainTop", Me.Top SaveSetting App.Title, "Settings", "MainWidth", Me.Width SaveSetting App.Title, "Settings", "MainHeight", Me.Height End IfEnd Sub
在加载多文档界面时,选定多文档界面的大小和位置是从保存的第一次打开的位置。将注册表中第一次打开多文档界面窗体的位置显示出来。
而在下载窗体时,将保存此次开始打开多文档界面的位置。 上边这两段代码的作用就是:程序退出时保存在屏幕上的显示位置记主窗体的大小,再次打开程序时主窗体就显示在上次关闭时的位置处,而且大小也和上次关闭时的大小相同。
SaveSetting appname, section, key, value
下列代码保存 Backup 和 LastEntry 表项的新值,这些表项包含在名为“RegCust”的应用程序的注册位置的启动部分。该代码假设变量 strDate 和 intLastEntry 包含有新的值。
Private Sub Form_Unload(Cancel As Integer) SaveSetting "RegCust", "Startup", "Backup", strDate SaveSetting "RegCust", "Startup", "LastEntry", _ intLastEntryEnd Sub
如果在注册位置的 Software/Microsoft 部分没有应用程序“RegCust”的注册项、或者没有这些指定的部分或注册表项,该代码将创建它。检索应用程序设置值可以使用 GetSetting 和 GetAllSettings 函数检索存储在应用程序注册位置的注册值。例如,应用程序能够检索注册表设置值以便在它被关闭时重新建立其条件。一次检索一项设置值如果仅检索一项注册表设置值,通过以下的语法使用 GetSetting 函数:GetSetting(appname, section, key[, default])下列代码检索“RegCust”应用程序启动部分的 LastEntry 表项的值,并将该值显示在立即窗口中。
Private Sub Form_Load() Dim intLastEntry As Integer intLastEntry = GetSetting("RegCust", "Startup", _ "LastEntry", "0") Debug.Print intLastEntryEnd Sub应注意,可以使用可选的参数 default 设置,当注册位置中指定的表项没有值时由 Visual Basic 返回的值。一次检索多项设置值如果检索多项注册表项的值,通过以下的语法使用 GetAllSettings 函数:GetAllSettings(appname, section)下列代码检索“RegCust”应用程序启动部分的两栏注册表项的值,并将其结果显示在立即窗口中。
Private Sub Form_Load() Dim avntSettings As Variant Dim intX As Integer avntSettings = GetAllSettings("RegCust", "Startup") For intX = 0 To UBound(avntSettings, 1) Debug.Print avntSettings(intX, 0), _ avntSettings(intX, 1) Next intXEnd Sub删除应用程序设置值可以使用 DeleteSetting 语句删除注册表项、注册部分或者应用程序注册位置。例如,当卸载一个应用程序时,也许希望删除该应用程序的所有注册表信息。通过以下语法使用 DeleteSetting 语句:DeleteSetting(appname, section, key)下列代码删除“RegCust”应用程序启动部分中的 LastEntry 注册表项。
Private Sub cmdDelKey_Click() DeleteSetting "RegCust", "StartUp", "LastEntry"End Sub
下列代码删除“RegCust”应用程序注册位置的整个 StartUp 部分。
Private Sub cmdDelSection_Click() DeleteSetting "RegCust", "StartUp"End Sub
下列代码删除“RegCust”应用程序整个注册位置。
Private Sub cmdUnInstall_Click() DeleteSetting "RegCust"End Sub
- 20楼qq9751200432小时前
- 新手,多多指教;、
- Re: lishehe2小时前
- 回复qq975120043n共同学习,加油
- 19楼hejingyuan62小时前
- 学习了
- Re: lishehe2小时前
- 回复hejingyuan6n共同进步啊[e04]
- 18楼a1314517love3小时前
- 很不错,加油,顶一个,长收
- Re: lishehe3小时前
- 回复a1314517loven向师哥学习
- 17楼zhuojiajin3小时前
- 看你的博客开始迷糊了!
- Re: lishehe3小时前
- 回复zhuojiajinn慢慢的就好了,过度……[e04]
- 16楼han_yankun200911小时前
- 多注意呀
- Re: lishehe3小时前
- 回复han_yankun2009n恩恩
- 15楼leimengyuanlian昨天 20:10
- 果然是高手
- Re: lishehe昨天 20:50
- 回复leimengyuanliann努力ing
- 14楼laner0515昨天 19:52
- 哎哟,不错哦
- Re: lishehe昨天 19:52
- 回复laner0515n[e03]
- 13楼zllaptx4869昨天 19:51
- 牛~
- Re: lishehe昨天 19:52
- 回复zllaptx4869n[e03]
- 12楼mazhaojuan昨天 19:23
- 这就是成长!
- Re: lishehe昨天 19:50
- 回复mazhaojuann恩恩,谢谢师姐
- 11楼zhanglianhai555昨天 19:06
- 加油!
- Re: lishehe昨天 19:15
- 回复zhanglianhai555n[e04]
- 10楼shan9liang昨天 17:17
- 真是一届比一届强啊
- Re: lishehe昨天 17:37
- 回复shan9liangn师哥多多指教啊
- 9楼liutengteng130昨天 16:23
- 学习了。。
- Re: lishehe昨天 16:23
- 回复liutengteng130n[e04]
- 8楼yingjiebohe昨天 16:22
- 好长的博文啊。还是支持一下。
- Re: lishehe昨天 16:22
- 回复yingjiebohen多多支持啊,师姐,呵呵
- 7楼aboy123昨天 16:21
- 总结的不错
- Re: lishehe昨天 16:21
- 回复aboy123n加油[e03]
- 6楼sunliduan昨天 15:35
- 很棒!加油!
- Re: lishehe昨天 16:21
- 回复sunliduann加油
- 5楼wangyongxia921昨天 14:29
- 牛!
- Re: lishehe昨天 14:30
- 回复wangyongxia921n[e03]
- 4楼zhangyingjie09昨天 14:28
- 不错,学习了。
- Re: lishehe昨天 14:29
- 回复zhangyingjie09n加油
- 3楼huanjileaimeidan昨天 14:21
- 加油
- Re: lishehe昨天 14:27
- 回复huanjileaimeidann[e04]
- 2楼a19891120scsc昨天 13:23
- 学习了,好文章!!!!!!!!!!!
- Re: lishehe昨天 13:23
- 回复a19891120scscn欢迎指正!
- 1楼lantingxv_jing昨天 11:44
- 越来越看不懂了
- Re: lishehe昨天 12:55
- 回复lantingxv_jingn越来越会看懂得啊