Como declaro un evento en 2005

22/04/2006 - 10:33 por LuisMiguel | Informe spam
Buenas
Tengo el siguiente codigo que en VB2003 funciona correctamente

Interface ILimites

Property DeFecha() As Date

Property AFecha() As Date

Event CodigoMayor()

Event LetraMayor()

Event FechaMayor()

End Interface

Public Class ClsListadosComunes

Implements ILimites

Protected cFeDeFecha As Date

Protected cFeAFecha As Date

Public Event CodigoMayor() Implements ILimites.CodigoMayor

Public Event LetraMayor() Implements ILimites.LetraMayor

Public Event FechaMayor() Implements ILimites.FechaMayor

End class

Al pasarlo a 2005 me da un error del siguiente tipo:

Error 11 'CodigoMayor' no puede exponer el tipo delegado subyacente
'ILimites.CodigoMayorEventHandler' del evento que se implementa fuera del
proyecto a través de class 'ClsListadosComunes'.
C:\SoftNet2005\pruebas\Informes\ClsLimites.vb 73 18 Informes

Como debo declarar el Evento


Gracias
LuisMiguel

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
22/04/2006 - 16:33 | Informe spam
Esto pasa cuando el nivel de acceso de los objetos difiere, es decir, la
interface es privada y la clase es publica, lo que significa que los
delegados que implementan los eventos son privados y por lo tanto no serian
accesibles desde el codigo que utilice la clase. La solucion es declarar la
interface como Public. Si no quieres hacer publica la interface puedes
declarar explicitamente los delegados como publicos (o mejor aun usar
EventHandler) y definir los eventos de la interface usando esos delegados:

Interface Abc

Property DeFecha() As Date

Property AFecha() As Date

Event CodigoMayor As EventHandler

Event LetraMayor As EventHandler

Event FechaMayor As EventHandler

End Interface

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#2 LuisMiguel
23/04/2006 - 14:30 | Informe spam
Efectivamnte era eso, el 2003 se lo tragaba
gracias eduardo

Suerte
LuisMiguel
"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:%
Esto pasa cuando el nivel de acceso de los objetos difiere, es decir, la
interface es privada y la clase es publica, lo que significa que los
delegados que implementan los eventos son privados y por lo tanto no
serian accesibles desde el codigo que utilice la clase. La solucion es
declarar la interface como Public. Si no quieres hacer publica la
interface puedes declarar explicitamente los delegados como publicos (o
mejor aun usar EventHandler) y definir los eventos de la interface usando
esos delegados:

Interface Abc

Property DeFecha() As Date

Property AFecha() As Date

Event CodigoMayor As EventHandler

Event LetraMayor As EventHandler

Event FechaMayor As EventHandler

End Interface

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida