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 SubCó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;
}