Context Menu no funciona desde un component

06/09/2004 - 21:37 por Ignacio X. Domínguez | Informe spam
Saludos a todos. He creado un Component que agrego a un form (aunque no
necesariamente debe ser asi). Este component tiene una propiedad ContextMenu
a la que le es asignado un ContextMenu que he creado en el Form y tiene
contenido. Mi problema es que cuando muestro el ContextMenu desde mi
Component, no se ejecuta el codigo asociado a cada elemento del menu. En el
Component he creado una clase llamada "window" que hereda de NativeWindow
para que mi Component no requiera de un form para ser ejecutado. El codigo
es el siguiente para mostrar el menu desde el Component es el siguiente

if (this.contextMenu != null)
{
SetForegroundWindow(new HandleRef(this.window,
this.window.Handle)); //Llamada a la API
TrackPopupMenuEx(
new HandleRef(this.contextMenu, this.contextMenu.Handle),
0x40,
point1.x, point1.y,
new HandleRef(this.window, this.window.Handle),
null); //Llamada a la API
PostMessage(
new HandleRef(this.window, this.window.Handle),
0,
IntPtr.Zero,
IntPtr.Zero); //Llamada a la API
}

Este codigo de hecho muestra el menu en la posicion correcta, pero al hacer
click en cualquiera de los elementos del menu, no se ejecuta el codigo
asociado al elemento del menu que ha sido seleccionado. Alguna idea de por
que pasa esto?

Si necesitan mas detalles, con gusto se los doy.

Gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
06/09/2004 - 22:28 | Informe spam
Ignacio,

No entiendo bien, ¿para qué sirve esa llamada a PostMessage con 0 como
código de mensaje?

Slds - Octavio

"Ignacio X. Domínguez" escribió en el mensaje
news:u%
Mostrar la cita
ContextMenu
Mostrar la cita
el
Mostrar la cita
hacer
Mostrar la cita
#2 Ignacio X. Domínguez
07/09/2004 - 04:47 | Informe spam
En realidad no lo se, quizas sea para empujar la cola de mensajes o algo por
el estilo. Eso fue parte del codigo que quedo luego de probar hacerlo como
lo hace el NotifyIcon de System.Windows. Forms.NotifyIcon (soy culpable de
haber echando un vistazo con el Anakrino a System.Windows.Forms.dll). Al
llamar alli al context menu utilizan esa llamada al final, pero lo intente y
dio el mismo resultado.

"Octavio Hernandez" wrote in message
news:%
Mostrar la cita
Ads by Google
Search Busqueda sugerida