Rubrik: Oberfläche · Sonstiges | VB-Versionen: VB6 | 16.01.13 |
Abbruch-Bedingung im Form_Load Ereignis Hier wird gezeigt, wie man aus der aufrufenden Anwendung auf Abbruch-Bedingungen im Form_Load reagieren kann, ohne dass die Form dann ungewollt angezeigt wird. | ||
Autor: Dieter Otter | Bewertung: | Views: 9.179 |
www.tools4vb.de | System: Win9x, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Ruft man aus der Anwendung heraus ein weiteres Formular bspw. modal auf und möchte dieses anzeigen, geht man i.a.R. wie folgt vor:
Load frmDetails ' Form laden, frmDetails.Show vbModal ' modal anzeigen Unload frmDetails ' und nach beim Beenden sauber entalden
Jetzt kommt es aber immer wieder einmal vor, dass in der aufrufenden Form bestimmte Daten geprüft werden und es unter Umständen erforderlich ist, dass die Form nicht angezeigt wird. Dies muss man der aufrufenden Form natürlich irgendwie mitteilen, so dass die Form erst gar nicht angezeigt wird.
Eine Möglichkeit hierfür wäre bspw. das Definieren einer "Cancel"-Eigenschaft in der aufzurufenden Form. Die aufrufende Form lädt die zweite Form und bevor dann die Show-Methode ausgeführt wird, wird zunächst die neue Cancel-Eigenschaft überprüft.
Das würde dann in etwa so aussehen.
Neue Cancel-Eigenschaft definieren
In der aufzurufenden Form wird folgender Code eingefügt:
Option Explicit ' Abbruch-Bedingung Private m_Cancel As Boolean
Private Sub Form_Load() m_Cancel = False ... ' falls die Form nicht angezeigt werden soll m_Cancel = True End Sub
Public Property Get Cancel() As Boolean Cancel = m_Cancel End Property
In der aufrufenden Form sieht das dann so aus:
Load frmDetails With frmDetails If Not .Cancel Then ' nur anzeigen, wenn Cancel = False ! .Show vbModal End If End With Unload frmDetails