Re: TableGrid - Boton Derecho
Hola. Te lo explico dentro del código:
' Declaramos variables privadas de tipo Menu.
' La primera necesariamente debe tener como padre el propio formulario
' si quieres que funcionen los atajos de teclado
PRIVATE $hmenu AS NEW Menu(ME)
PRIVATE $hmenuEdit AS Menu
PUBLIC SUB Form_Open()
' En cualquier método que inicialice el formulario declaramos
' el resto de ítems que contendrá nuestro menú contextual,
' y asignamos como padre de cada ítem al menú inicial.
' Además le proveemos de un manejador de evento, para que
' pueda responder al click.
$hmenuEdit = NEW Menu($hmenu) AS "mnuEditarRegistro"
$hmenuEdit.Text = ("Edit Record") ' texto del menu (item)
$hmenuEdit.Picture = Picture["icons/gtk-edit.png"] ' icono del item
$hmenuEdit.Shortcut = "Ctrl+E" ' atajo de teclado
END
' Bien, habiendo hecho esto, la forma de llamar al menú con el click derecho
' es usando el evento _Menu() del gridview, o tableview, o columnview, etc.
' Varios controles disponen de este evento.
PUBLIC SUB gridview1_Menu()
IF gridview1.Rows.Count > 0 THEN ' comprobamos si existe alguna fila...
$hMenu.Popup() ' si existe, abrimos el menú mediante su método Popup()
ENDIF
END
PUBLIC SUB mnuEditarRegistro_Click()
' al hacer click sobre el elemento "Editar registro" del menú
' se ejecutará esta rutina con el código correspondiente.
END
Por supuesto, ahora que ya sabes cómo funciona con un sólo ítem, no te resultará difícil añadir más ítems a tu menú, cada uno con sus manejadores.
Otros programadores prefieren crear el menú con el asistente, pero eso te limita si el formulario ya tiene una barra de menú.
Aquí puedes ver el formulario completo, si te interesa:
http://www.assembla.com/code/dfhlog...ch.class?rev=59
Saludos