Per sempicit� se creo un UC nuovo con questo codice:
---
1)
Event SearchRequest(Testo As String)
Private Sub Text1_Validate(Cancel As Boolean)
RaiseEvent SearchRequest(Text1.Text)
End Sub
---
Aggiungo con l'autocomposizione:
---
2)
Event SearchRequest(Testo As String)
'Dichiarazioni di eventi:
Event Validate(Cancel As Boolean) 'MappingInfo=Text1,Text1,-1,Validate
Private Sub Text1_Validate(Cancel As Boolean)
RaiseEvent Validate(Cancel)
RaiseEvent SearchRequest(Text1.Text)
End Sub
---
Ed ancora tutto bene.
Se creo un nuovo UC su un progetto sempre vuoto, subito usando
l'autocomposizione (senza fare a mano), che crea questo codice:
---
3)
'Dichiarazioni di eventi:
Event Validate(Cancel As Boolean) 'MappingInfo=Text1,Text1,-1,Validate
Event SearchRequest(Testo As String)
Private Sub Text1_Validate(Cancel As Boolean)
RaiseEvent Validate(Cancel)
End Sub
---
Mi da un errore alla pressione di F5:
"Interfaccia non valida per l'implementazione"
Il codice � praticamente uguale al 2), anzi manca un raise, che se
aggiungo, all'F5 poi va in crash VB6.
E' per caso un bug noto o che? Ho installato il SP5.
> E' per caso un bug noto o che? Ho installato il SP5.
Col SP6 pare permanere il problema.
> Mi da un errore alla pressione di F5:
> "Interfaccia non valida per l'implementazione"
>
> Il codice � praticamente uguale al 2), anzi manca un raise, che se
> aggiungo, all'F5 poi va in crash VB6.
Allora ho trovato questo:
http://www.vbmonster.com/Uwe/Forum.aspx/cntr-creation/195/Not-a-valid-interface-for-Implements
In pratica facendo una breve prova, se tolgo il Validate da evento mappato
della textbox, questo viene comunque gestito dallo UserControl stesso.
Da cos�
Event Validate(Cancel As Boolean) 'MappingInfo=Text1,Text1,-1,Validate
Private Sub Text1_Validate(Cancel As Boolean)
ValidaInput 'mia routine di gestione
RaiseEvent Validate(Cancel)
End Sub
A cos�
'Event Validate(Cancel As Boolean) 'MappingInfo=Text1,Text1,-1,Validate
Private Sub Text1_Validate(Cancel As Boolean)
validaInput
'RaiseEvent Validate(Cancel)
End Sub
Pare funzionare, se trovo altri problemi far� sapere.