多两个“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
Private Sub Form_Unload(Cancel As Integer) SaveSetting "RegCust", "Startup", "Backup", strDate SaveSetting "RegCust", "Startup", "LastEntry", _ intLastEntryEnd Sub
Private Sub Form_Load() Dim intLastEntry As Integer intLastEntry = GetSetting("RegCust", "Startup", _ "LastEntry", "0") Debug.Print intLastEntryEnd SubPrivate 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 SubPrivate Sub cmdDelKey_Click() DeleteSetting "RegCust", "StartUp", "LastEntry"End Sub
Private Sub cmdDelSection_Click() DeleteSetting "RegCust", "StartUp"End Sub
Private Sub cmdUnInstall_Click() DeleteSetting "RegCust"End Sub