Añade un menú al grid.
A diferencia de los menús de formulario (que se puede añadir mediante código o un registro en la tabla ahora_menus), los menús de grids sólo se pueden añadir desde código.
Para capturar el evento click del botón, debemos activar la captura de eventos del grid y programar el evento de la grid.
Definición:
CONTROLGRID.menuitemadd "Caption","Name",[Tipo As eTipo_Menu=0],[padre As string],[nuevoGrupo As Boolean=False],[checked As Boolean = False],[ResIdIcono]
Devuelve el elemento creado, o sea que lo podemos instanciar en la propia creación y asignarlo a una variable
Para volver a capturar el control, accedemos mediante la función menuItem que nos da la colección de elementos del menú:
Código VB6:
Sub show () with gform.controls ("grdLineas") .menuitemadd "Mi nuevo menú", "pers_mnuNuevo" .activarscripts=true end with End Sub Sub Grid_MenuAfterExecute(aGrid,aMenuItem) If agrid.name = "grdLineas" Then If amenuitem.name = "pers_mnuNuevo" Then MsgBox "Hola" End If End If End Sub --Ejemplo de creación de menú y acceso a las propiedades enabled Sub Show() With gForm.Controls("grdLineas") .menuitemadd ("Caption","mnuName",0) .enabled = False End With gcn.obj.showmsgbox gForm.Controls("grdLineas").menuitem("mnuName").name gForm.Controls("grdLineas").menuitem("mnuName").enabled = true End Sub
Código C#:
public void Show() { ICntGridUsuario lGrid = (ICntGridUsuario)gForm.Controls["grdLineas"]; lGrid.MenuItemAdd("Mi nuevo menú", "pers_mnuNuevo"); lGrid.ActivarScripts = true; } //Para Activar este evento hay que configurar la grid. Poner en el void Initialize por ejemplo: (gForm.Controls["grdLineas"] as ICntGridUsuario).ActivarScripts = true; public void Grid_MenuAfterExecute(ICntGridUsuario aGrid, IAhoraTool aMenuItem) { if (aGrid.Name == "grdLineas") { if (aMenuItem.Name == "pers_mnuNuevo") { AhoraCore.VBA.Interaction.MsgBox("Hola"); } } } // Ejemplo de creación de menú y acceso a las propiedades Enabled public void Show() { ICntGridUsuario lGrid = (ICntGridUsuario)gForm.Controls["grdLineas"]; lGrid.MenuItemAdd("Caption", "mnuName", ETipo_Menu.eTipo_Menu_Menu); lGrid.Enabled = false; gCn.Obj.ShowMsgBox((gForm.Controls["grdLineas"] as ICntGridUsuario).MenuItem("menuName").Name); lGrid.MenuItem("mnuName").Enabled = true; }