Hej alla hjälpsamma personer! Här är mitt förslag: Det funkade lite så där halft. Felet var att när man skapade ett nytt dokument så hette det likadant som det som stod längst upp i comboboxen. Vilket fel? Ville bara visa principen. Tänkte att du kunde anpassa den. Men om du inte klarar det så komer ett förslag här. Annars blunda... :O) Tack för hjälpen! Nu ska jag bara se om det funkar! Men det gör det säkert, när det är experter som hjälpt mig :) Det är fortfarande något fel!Fråga om Combobox och MDI
Det är så här att jag har en MDI-form med en massa childs i (det börjar bli chatigt att skriva det varenda gång, men men...). I menyn "Fönster" har jag windowlist = true.
Jag undrar om det på något sätt går att överföra allt som står i den där windowlisten till en combobox som ligger på verktygsfältet, och därifrån sedan kunna skifta mellan de olika "childarna".
Tack på förhand!
MvH Dan "DaPe" PerssonSv: Fråga om Combobox och MDI
'MDIForm
Private mChildren As Collection
Public Sub RegisterChild(Child As Form)
mChildren.Add Child
LoadCombo
End Sub
Public Sub UnRegisterChild(Child As Form)
Dim frmForm As Form
Dim Index As Integer
Index = 1
For Each frmForm In mChildren
If Child Is frmForm Then
mChildren.Remove Index
Else
Index = Index + 1
End If
Next
LoadCombo
End Sub
Public Sub LoadCombo()
Dim frmForm As Form
Combo1.Clear
For Each frmForm In mChildren
Combo1.AddItem frmForm.Caption
Next
End Sub
Private Sub Combo1_Click()
Dim frmForm As Form
If Combo1.ListIndex <> -1 Then
Set frmForm = mChildren(Combo1.ListIndex + 1)
frmForm.SetFocus
End If
End Sub
Private Sub MDIForm_Load()
Set mChildren = New Collection
End Sub
Private Sub MDIForm_UnLoad(Cancel As Integer)
Set mChildren = Nothing
End Sub
'MDIChild
Private Sub Form_Load()
MDIForm1.RegisterChild Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
MDIForm1.UnRegisterChild Me
End SubSv: Fråga om Combobox och MDI
Dessutom skulle jag vilja att det fönster som var aktiverat skulle stod i comboboxen när den är "ihopfälld". Nu är där bara vitt.
MvH Dan PerssonSv: Fråga om Combobox och MDI
'MDIForm
Private mChildren As Collection
Public Sub RegisterChild(Child As Form)
mChildren.Add Child
LoadCombo
End Sub
Public Sub UnRegisterChild(Child As Form)
Dim frmForm As Form
Dim Index As Integer
Index = 1
For Each frmForm In mChildren
If Child Is frmForm Then
mChildren.Remove Index
Else
Index = Index + 1
End If
Next
LoadCombo
End Sub
Public Sub LoadCombo()
Dim frmForm As Form
Dim Index As Integer
Combo1.Clear
For Each frmForm In mChildren
Index = Index + 1
Combo1.AddItem Index & ": " & frmForm.Caption
If frmForm Is ActiveForm Then Combo1.ListIndex = Combo1.NewIndex
Next
End Sub
Public Sub ComboSelect()
Dim frmForm As Form
Dim Index As Integer
For Each frmForm In mChildren
If frmForm Is ActiveForm Then
Combo1.ListIndex = Index
Exit For
Else
Index = Index + 1
End If
Next
End Sub
Private Sub Combo1_Click()
Dim frmForm As Form
If Combo1.ListIndex <> -1 Then
Set frmForm = mChildren(Combo1.ListIndex + 1)
frmForm.SetFocus
End If
End Sub
Private Sub MDIForm_Load()
Set mChildren = New Collection
End Sub
Private Sub MDIForm_UnLoad(Cancel As Integer)
Set mChildren = Nothing
End Sub
'MDIChild
Private Sub Form_Activate()
MDIForm1.ComboSelect
End Sub
Private Sub Form_Load()
MDIForm1.RegisterChild Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
MDIForm1.UnRegisterChild Me
End SubSv: Fråga om Combobox och MDI
PS. Jag har faktiskt försökt utveckla koden självt, men misslyckats :(Sv: Fråga om Combobox och MDI
Ex:
Jag har en child öppen. Caption visas i combobox precis som det ska. Sedan infogar jag t.ex. 5 childs till. Då heter första childen i comboboxen "Dokument1" (helt rätt), andra childen heter "Dokument2" (också helt rätt) o.s.v. Men när man kommer till sista childen så heter alltid den som den första (översta) i comboboxen! Vad kan det bero på?
Sen är det ett problem till. När jag stänger en child försvinner inte Caption ur Combobox! Fel?
MvH Dan "DaPe" Persson
PS. Det är en ordbehandlare jag gör, det är därför man kan stänga och öppna och allt vad det nu heter! DS.