Originariamente inviato da evil80
Ciao,
avrei da porvi una domanda.
Sto realizzando un'applicazione in Vb6 e vorrei usare una struttura MDI.
Ma ci sono alcune cose che nn riesco a fare.
Ho un form principale (form padre) e ho creato altri piccoli form (assegnando loro la proprietà MDIChild a true).
Vorrei che questi form figli abbiano sempre il loro angolo superiore sinistro attaccato all'angolo superiore sinistro del form padre (ho impostato la proprietà top e left a 0).
Però succede che se apro un form figlio e poi ne apro un altro quest'ultimo non si trova più attaccato all'angolo in alto a sinistra (pur avendo le proprietà top e left a 0).
Inoltre vorrei che le dimensioni del form figlio siano sempre tali da ricoprire l'intera superficie del form padre.
Come faccio tutto ciò ?
Spero di essermi spiegato...
Ciao
io di solito poichè con gli MDI non sono facili da settare queste cose uso questa routine
codice:
Option Explicit
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
End If
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
per usarla
codice:
Private Sub Form_Load()
FormWinRegPos Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
FormWinRegPos Me, True
End Sub
così la prima volta esce nella posizione di default del mdichild
le successiva dove l'hai spostata