Toon posts:

[VB] Event raisen vanuit module in user control

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb in VB6 een user control geschreven die bestaat uit het control zelf (oftewel het .ctl-bestand) en een module. In het control wordt een functie uit de module aangeroepen. Nou probeer ik deze functie zelf een event te laten raisen, dus niet vanuit de control.
Het probleem is echter dat RaiseEvent niet toegestaan is in een module. Om die reden heb ik toen een public functie in de control gezet die slechts als doel heeft het event te raisen. Ik kan echter niet vanuit de module deze functie bereiken. Weet iemand hoe dit moet?

Ik heb ook al de volgende constructie geprobeerd, maar dan krijg ik een 'Object Variable or With block variable not set' foutmelding op de regel met de ***:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[user control, genaamd MyControl]

public event TestEvent()

public sub StartModuleFunctie
  call TestFunctie
end sub

public sub StartEvent
  raiseevent TestEvent()
end sub


[module]

dim test as MyControl

public sub TestFunctie
  test.StartEvent                       ***
end sub

  • DukeMan
  • Registratie: Mei 2000
  • Niet online
Wat je het beste kan doen is als volgt:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[usercontrol]

Public Sub UserControl_Initialize()
  ..
  Set module.objUserControl = Me
  ..
End Sub

Friend Sub RaiseMyEvent()
  RaiseEvent TestEvent
End Sub

[module]

Public objUserControl as MyControl

Public Sub TestFunctie
  objUserControl.RaiseMyEvent
End Sub


Dit zou moeten werken... (zo heb ik het namelijk)

Het volgende werkt zeker:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[usercontrol]

Public Sub UserControl_Initialize()
  ..
  MakeRef Me
  ..
End Sub

Friend Sub RaiseMyEvent()
  RaiseEvent TestEvent
End Sub

[module]

Public objUserControl as MyControl

Public Sub MakeRef(ByVal objRefToUserControl as MyControl)
  Set objUserControl = objRefToUserControl
End Sub

Public Sub TestFunctie
  objUserControl.RaiseMyEvent
End Sub

[ Voor 38% gewijzigd door DukeMan op 23-07-2003 17:03 ]