Het probleem: Ik heb een gewoon dialoogvenster gemaakt, dit dialoogvenster wil ik als functie geven om in een MDI-Child-venster te zoeken.
Het programma:
frmMain: MDI-Form waarin via het menu Bewerken>Zoeken het zoek-dialoogvenster gestart word
frmDocument: Het documentformulier waar MDIChild = True. Deze bevat een RTF-text Control (rtfTextBox).
frmSearch: Het zoekdialoogvenster. Deze bevat een invoerveld (txtSearch) voor een zoekterm en een knop om te zoeken (cmdSearch)
Eerste Poging: De code (achter frmSearch):
Gedachte achter de code: Je typt een tekst in het invoerveld van frmSearch en je drukt op cmdSearch. Dan neemt de code het over en zoekt uit wat je hebt ingetypt. Vervolgens geeft het aan het actieve document (frmMain.ActiveForm) aan dat in het rtfTextBox daarvan gezocht moet worden naar die tekst (rtfTextBox.Find())
Dit geeft de volgende foutcode: Run-time Error '426': Only one MDI Form Allowed
MSDN: http://msdn.microsoft.com...ml/vbmsgobjOneMDIForm.asp
Goed, werkt niet: Tweede Poging:
Deze geeft geen foutmelding, maar hij doet iets compleet anders dan dat ik bedoelde. Hij laad een nieuw frmDocument, met als titel frmDocument, en doet daar vervolgens niets.
Het systeem:
Visual Basic 6.0 SP6 op Windows 98SE
Het programma:
frmMain: MDI-Form waarin via het menu Bewerken>Zoeken het zoek-dialoogvenster gestart word
frmDocument: Het documentformulier waar MDIChild = True. Deze bevat een RTF-text Control (rtfTextBox).
frmSearch: Het zoekdialoogvenster. Deze bevat een invoerveld (txtSearch) voor een zoekterm en een knop om te zoeken (cmdSearch)
Eerste Poging: De code (achter frmSearch):
QBasic:
1
2
3
4
5
6
7
| Private Sub cmdSearch_Click() Dim strSearch As String strSearch = txtSearch.Text lngStart = frmMain.ActiveForm.rtfTextBox.Find(strSearch, lngStart, , 0) End Sub |
Gedachte achter de code: Je typt een tekst in het invoerveld van frmSearch en je drukt op cmdSearch. Dan neemt de code het over en zoekt uit wat je hebt ingetypt. Vervolgens geeft het aan het actieve document (frmMain.ActiveForm) aan dat in het rtfTextBox daarvan gezocht moet worden naar die tekst (rtfTextBox.Find())
Dit geeft de volgende foutcode: Run-time Error '426': Only one MDI Form Allowed
MSDN: http://msdn.microsoft.com...ml/vbmsgobjOneMDIForm.asp
Goed, werkt niet: Tweede Poging:
QBasic:
1
2
3
4
5
6
| Private Sub cmdSearch_Click() Dim strSearch As String strSearch = txtSearch.Text lngStart = frmDocument.rtfTextBox.Find(strSearch, lngStart, , 0) End Sub |
Deze geeft geen foutmelding, maar hij doet iets compleet anders dan dat ik bedoelde. Hij laad een nieuw frmDocument, met als titel frmDocument, en doet daar vervolgens niets.
Het systeem:
Visual Basic 6.0 SP6 op Windows 98SE