non ho ben capito cosa faccia la tua funzione ma non funziona,ovvero se apro un form "figlio" poi lo chiudo e poi lo riapro ancora NON compare più nella posizione iniziale ma più in basso e ogni volta che riperto le stesse operazioni va sempre più in basso..
Inoltre lanciando il programma ha individuato degli errori bella tua funzione...così ho dovuto modificarla in questo modo...per favore prova a controllarla e a dirmi se per caso queste anomalie sono dovute al codice sbagliato :
codice:
Public Sub FormWinRegPos(MyForm As Form, Optional pbSave As Boolean)
On Error GoTo EH
With MyForm
SaveSetting App.EXEName, .Name, "WindowState", .WindowState
If .WindowState = vbMinimized Or .WindowState = vbMaximized Then
.WindowState = vbNormal
SaveSetting App.EXEName, .Name, "Top", .Top
SaveSetting App.EXEName, .Name, "Left", .Left
SaveSetting App.EXEName, .Name, "Height", .Height
SaveSetting App.EXEName, .Name, "Width", .Width
Else
.Top = GetSetting(App.EXEName, .Name, "Top", .Top)
.Left = GetSetting(App.EXEName, .Name, "Left", .Left)
.Height = GetSetting(App.EXEName, .Name, "Height", .Height)
.Width = GetSetting(App.EXEName, .Name, "Width", .Width)
.WindowState = GetSetting(App.EXEName, _
.Name, "WindowState", .WindowState)
End If
End With
Exit Sub
EH:
MsgBox "Error " & Err.Number & vbCrLf & vbCrLf & Err.Description
End Sub