visual una studio que puede manejo librería eventos evento crear controlador biblioteca agregar c# event-handling compact-framework

c# - una - no se puede agregar el controlador de eventos visual studio



¿Cómo invoco/invoco un manejador de evento de clic de botón de otro manejador?(c#) (5)

¿Qué tal si factorizas el código común en un método privado? Luego puede llamar a ese método desde ambos controladores.

Me falta algo obvio, soy nuevo en .NET, he estado desarrollando en C ++ / MFC durante años.

En un controlador de eventos para un clic de botón, me gustaría volver a utilizar otro controlador de eventos / clic. Sin embargo, parece que no puedo entender cómo hacerlo.

El bit que puede estar causando problemas es que el controlador para el segundo elemento que quiero "disparar" no está en la misma forma / contexto.

Parece que debería ser capaz de llamar al método ...

Pero parece que no puedo hacerlo.

Esto es en un marco compacto / Win Mobile


Dentro del controlador de eventos 1, simplemente levante el evento por el que el controlador de eventos 2 está "escuchando". Así que dentro del controlador de eventos 1, coloca OnEvent() . Tenga en cuenta que el controlador de eventos 2 ya debe estar conectado para escuchar el evento.

Puedo hablar con más especificidad si muestra más código, pero esto puede ser suficiente.


Creo que una mejor solución sería refactorizar su código para que el trabajo realizado por el controlador de eventos original esté dentro de una función.

Entonces tanto el controlador original como el nuevo controlador llaman a la misma función.


Debe hacer una de las siguientes cosas:

  • Proporcionar acceso a la instancia de clase que contiene el manejador (es decir, una referencia a ese objeto)
  • Haga que el controlador sea estático para que cualquier instancia pueda referenciarlo directamente
  • Coloque el controlador en algún otro objeto disponible a nivel mundial (estático, singleton, etc.) para que ambos consumidores puedan usarlo
  • Use un marco que proporcione agregación de eventos para que no tenga que preocuparse por tales cosas

Mi ignorancia Simplemente no tenía visibilidad para el otro controlador. Este es un problema simple de resolver. Acabo de hacer que el controlador sea visible para el objeto / formulario que maneja el segundo evento y es fácil disparar el otro evento.