PDA

Vollständige Version anzeigen : Keine benutzerdefinierten Events für ein Formular?


erpel
27.08.2001, 23:44
<html><head><title>Keine benutzerdefinierten Events für ein Formular?</title><meta name="author" content="andre graeser (andre.graeser@web.de)"><meta name="generator" content="Ulli Meybohms HTML EDITOR"></head><body text="#000000" bgcolor="#FFFFFF" link="#0000FF" alink="#FF0000" vlink="#00C0FF"><h1>Keine benutzerdefinierten Events für ein Formular?</h1>
Gibt es tatsächlich keinen Weg, einem Formular ein benutzerdefiniertes Event hinzuzufügen, daß dann über einen Verweis in einer anderen Klasse weiter verarbeitet werden kann? Nach meinen bisherigen Erfahrungen funktioniert die (von mir so genannte) Event-Weitergabe nur mit den eingebauten Formular-Ereignissen. Demgegenüber ließ sich ein über die Event-Anweisung definiertes benutzerspezifisches Ereignis nicht mittels
der RaiseEvent-Anweisung auslösen.

Zur Illustration hier eine Implementierung einer klassischen Event-Weitergabe des Click-Ereignisses eines Formulars, wobei ich das von mir gewünschte benutzerdefinierte Ereignis zur Veranschaulichung ebenfalls mit eingebaut habe:

<h3>Code der Klasse cls_FormEventHandler:</h3>


Option Compare Database
Option Explicit

Private WithEvents frm As Form


Public Sub Initialize(ConcerningForm As Form)
Set frm = ConcerningForm
End Sub


Private Sub frm_Click()
MsgBox ("Reaktion auf das Eintreten des Click-Ereignisses in cls_FormEventHandler")
End Sub


'hier liegt das Problem: offensichtlich wurde das Ereignis
'nicht ausgelöst, da diese Prozedur nicht aufgerufen wird
Private Sub frm_NeuesEreignis()
MsgBox ("Reaktion auf das Eintreten des NeuesEreignis-Ereignisses in cls_FormEventHandler")
End Sub

<h3>Beispielhafter Code im Modul des Formulars (dessen Click-Ereignis verarbeitet werden soll):</h3>


Option Compare Database
Option Explicit

Event NeuesEreignis() 'ein benutzerdefiniertes Ereignis
Private EventHandlerFuerDiesesFormular As New cls_FormEventHandler


Private Sub Form_Open(Cancel As Integer)
EventHandlerFuerDiesesFormular.Initialize Me
End Sub


Private Sub Form_Click()
MsgBox ("Reaktion auf das Eintreten des Click-Ereignisses im Formularmodul")

'hier liegt das Problem: Versuch, das benutzerdefinierte Ereignis auszuloesen
'schlaegt offensichtlich fehl
RaiseEvent NeuesEreignis
End Sub

In vorauseilendem Dank für mögliche Lösungen,

Andre Gräser, 27.08.2001

andre.graeser@web.de</body></html>