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.
 

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%
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 similares