Salvando e Carregando Configurações de Formulários
Você pode fazer um bom uso das funções do VB de acesso ao registro criando algumas rotinas reutilizáveis que salvam e carregam posição e estado de formulários nos seus programas.
' Salvando configurações de formulário
Function SaveFormSettings(ByVal NomeAplicacao As String, frm As Object)
SaveSetting NomeAplicacao, frm.Name, "Left", frm.Left
SaveSetting NomeAplicacao, frm.Name, "Top", frm.Top
SaveSetting NomeAplicacao, frm.Name, "Width", frm.Width
SaveSetting NomeAplicacao, frm.Name, "Height", frm.Height
SaveSetting NomeAplicacao, frm.Name, "WindowState", frm.WindowState
End Function
' Restaurando configurações de formulário
Function LoadFormSettings(ByVal NomeAplicacao As String, frm As Object)
Dim currWindowState As Integer
' no caso de nenhum valor estar no registro
On Error Resume Next
' Se o form estiver atualmente maximizado ou minimizado, temporariamente
' reverte ao estado normal, caso contrário o comando Move falha.
currWindowState = frm.WindowState
If currWindowState <> 0 Then frm.WindowState = 0
' Usa um único Move para evitar múltiplos eventos Resize e Paint.
frm.Move GetSetting(NomeAplicacao, frm.Name, "Left", frm.Left), _
GetSetting(NomeAplicacao, frm.Name, "Top", frm.Top), GetSetting(NomeAplicacao, _
frm.Name, "Width", frm.Width), GetSetting(NomeAplicacao, frm.Name, "Height", _
frm.Height)
frm.WindowState = GetSetting(NomeAplicacao, frm.Name, "WindowState", _
currWindowState)
End Function
O uso destas rotinas é simples e direto:
Private Sub Form_Load()
LoadFormSettings App.Title, Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
SaveFormSettings App.Title, Me
End Sub