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;

        }