Este es un ejemplo básico que puede servir como plantilla para una solución más avanzada. El campo @Prueba se puede añadir primero mediante configuración de Grid o definirlo como guste en código F10. Podría ser cualquier otro campo adaptando lo necesario de este código F10 que se muestra a continuación.


Código VB6:

Sub Initialize()
  gForm.Controls("grdLineas").ActivarScripts = True
End Sub

Sub Grid_AfterLoad(aGrid)
  aGrid.Campo("@Prueba").Column.Button = True
  aGrid.Campo("@Prueba").Column.ButtonText = True
  aGrid.Campo("@Prueba").Column.ButtonAlways= True
End Sub

Sub Grid_RowColChange(aGrid, LastRow, LastCol)
  Select Case aGrid.Name
    Case "grdLineas"
      Select Case aGrid.CampoActual
        Case "@Prueba"
          MsgBox "ROWCOLCHANGE.Estoy en el campo deseado"
      End Select
  End Select
End Sub

Sub Grid_DblClick(aGrid)
  Select Case aGrid.Name
    Case "grdLineas"
      Select Case aGrid.CampoActual
        Case "@Prueba"
          MsgBox "Estoy en el campo deseado"
      End Select
  End Select
End Sub

Código C#:

using AhoraOCX;
using AhoraCore;

namespace AhoraScriptsPantalla
{
  public class AhoraCl_frmPedidos : AhoraOCX.AhoraBaseScript
  {

    public void Initialize()
    {
            (gForm.Controls["grdLineas"] as ICntGridUsuario).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_AfterLoad(ICntGridUsuario aGrid)
    {
      if (aGrid.Name == "grdLineas")
      {
        aGrid.Campo("@Prueba").Column.Button = true;
        aGrid.Campo("@Prueba").Column.ButtonText = true;
        aGrid.Campo("@Prueba").Column.ButtonAlways = 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_RowColChange(ICntGridUsuario aGrid, Valor LastRow, Valor LastCol)
    {
      if (aGrid.Name == "grdLineas")
      {
        if (aGrid.CampoActual == "@Prueba")
        {
          AhoraCore.VBA.Interaction.MsgBox("ROWCOLCHANGE.Estoy en el campo deseado");
        }
      }
    }



    //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_DblClick(ICntGridUsuario aGrid)
    {
      if (aGrid.Name == "grdLineas")
      {
        switch (aGrid.Columns[aGrid.Col].DataField)
        {
          case "@Prueba":
            {
               AhoraCore.VBA.Interaction.MsgBox("Estoy en el campo deseado");
              break;
             }
        }
      }
    }

  }
}