¿Cómo detectar un evento de un user control?

Estoy desarrollando un control en C# para implementarlo en una aplicación de VFP, específicamente un MenuStrip.
La cosa es la siguiente:
En base al Item que seleccionen (Clcik) en el menú, el control debe regresarme el nombre de el Item a la forma de VFP
para que en VFP yo pueda tomar una acción en base al item cliqueado, es decir, darme cuenta si dieron clic en "Abrir".
"Editar",... Y de esta manera yo, en VFP, desplegar otros formularios que corresponden con el Item.
La solución que pensé fue: en el Control de C#, asignar el evento clic de todos los items del menú a un mismo evento
_Click() y crear una propiedad pública, a la cual, al momento de que ocurra el evento Click asignarle el valor de
sender.toString(), el cual contiene el nombre del item; aquí es donde tengo el conflicto. Dentro del control C#, o sea,
el menú, si puedo saber cuando ocurre el evento Click, pero para la forma en VFP esto es transparente, por lo que
no puedo darme cuenta en la forma cuando el evento sucede.
Se me ocurre crear un evento público al cual pueda acceder desde VFP y saber cuándo se ejecuta, para de ésta manera
saber que la propiedad pública ha obtenido un valor y continuar con las decisiones en VFP, pero no he podido declarar
el evento.
Agradecería bastante si me pudiera ayudar o si tuviera una solución mejor.

2 respuestas

Respuesta
1
Lo que quieres hacer es u poco complicado por qué según entiendo tienes dos elementos un control de usuario y otro formulario por lo tanto son dos clases diferentes y para comunicarlas entre si necesitas una interfaz que comunique a las dos clases esto lo puedes hacer con herencia de ambas clases o meiante una interfaz la otra es poner una propiedad publica en el control de usuario y con un timer verificar cuando entro a cualquier evento te mando unos link que hablan sobre aventos dinámicos por si deseas hacerlo con una interfaz
http://geeks.ms/blogs/ozonicco/archive/2007/02/06/delegados-para-eventos-en-c-2-0.aspx
http://www.arcanus.com.ar/2008/06/09/tuto-eventos-en-c/
Respuesta
1
Es una posible solución. Sin embargo una posible forma de hacerlo es utilizando las técnicas de interoperabilidad dadas por .Net
La interoperabilidad hace referencia a cómo utilizar clases de código
no administrado desde aplicaciones de .NET y viceversa. Cuando hablamos de código
no administrado, nos estamos refiriendo a código que no está generado con los compiladores
de la plataforma .NET. Una de las múltiples maneras de hacerlo es por COM.
Te recomiendo este articulo:
http://www.foxcentral.net/microsoft/NETforVFPDevelopers_Chapter15.htm
Espero te de alguna idea, si sientes que no cumple con lo que tenias pensado, o dudas, no dudes en escribirme.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas