Rubrik: Oberfläche · Fenster | VB-Versionen: VB4, VB5, VB6 | 16.03.04 |
Wird die aktuelle Form modal oder non-modal angezeigt? Wie kann man aus der aktuell angezeigten Form feststellen, ob diese modal oder non-modal angezeigt wird? Die Antwort hierzu finden Sie hier. | ||
Autor: Dieter Otter | Bewertung: | Views: 17.995 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wie kann man eigentlich aus der aktuell angezeigten Form feststellen, ob diese modal oder non-modal angezeigt wird?
Eine Möglichkeit wäre zu versuchen eine zusätzliche Form non-modal aufrufen. Lässt sich die Form modal anzeigen, wird die aktuelle Form non-modal angezeigt - anderfalls modal. Die zusätzliche Form soll aber nicht sichtbar angezeigt werden! Dies erreicht man, indem man die Form mittels Move-Methode aus den sichtbaren Bildschirmbereich verschiebt.
Fügen Sie Ihrem Projekt zunächst eine neue Form hinzu - ohne jegliche Controls und nennen die Form frmDummy. Im Form_Load-Ereignis wird die Form aus den sichtbaren Bereich verschoben:
Private Sub Form_Load() ' aus den sichtbaren Bereich schieben Me.Move -5000, -5000, 500, 500 End SubJetzt brauchen wir noch die Funktion, die prüft, ob die aktuelle Form modal oder non-modal angezeigt wird. Am besten Sie fügen die Funktion ein Modul:
' Prüfen, ob die aktuelle Form modal oder ' non-modal angezeigt wird Public Function IsModal() On Error Resume Next Dim oTemp As New frmDummy oTemp.Show IsModal = (Err.Number = 401) Unload oTemp Set oTemp = Nothing On Error GoTo 0 End Function
Die Prüfung erfolgt dann wie folgt (in einer beliebigen Form):
' Modal? If IsModal() Then MsgBox "Form wird modal angezeigt" Else MsgBox "Form wird non-modal angezeigt" End If