Control Grid
Al pulsar un botón del formulario, queremos que el foco del cursor se dirija a la primera columna del grid.
Útil para cuando queremos navegar en el grid con los cursores del teclado.
También podremos cambiar el aspecto del foco cuando seleccionamos un registro mediante la propiedad marqueeStyle. Útil para cuando establecemos una regla de color por línea y al seleccionar el registro no se ve el color configurado. Porque predomina el color del recordselector del grid.
Código VB6:
'Este ejemplo se posiciona en el el grid cuando se pulsa el botón guardar.
'Con la condición de que no haya contenido en el grid
Sub Initialize()
gform.Controls("Botonera").ActivarScripts = True
End Sub
Sub Botonera_AfterExecute(aBotonera, aBoton)
If aboton.name = "botGuardar" Then
Establecefoco
End If
End Sub
Sub Establecefoco ()
Dim g 'As AhoraOCX.cntGridUsuario
Set g = gForm.Controls("NombreGrid")
If g.rowcount = 0 Then
g.Setfocus
g.grid.bookmark = 1
g.grid.col = 1
g.grid.Row=1
End If
End SubCódigo C#:
using AhoraSistema;
using AhoraOCX;
using AhoraCore;
namespace AhoraScriptsPantalla
{
public class AhoraCl_frmAlbaranes : AhoraOCX.AhoraBaseScript
{
public void Initialize()
{
(gForm.Controls["Botonera"] as ICntBotonera).ActivarScripts = true;
}
public void Botonera_AfterExecute(ICntBotonera aBotonera, IAhoraTool aBoton)
{
if (aBoton.Name == "botGuardar")
{
EstableceFoco();
}
}
private void EstableceFoco()
{
ICntGridUsuario lGrid = (ICntGridUsuario)gForm.Controls["grdLineas"];
if (lGrid.RowCount == 0)
{
(lGrid as System.Windows.Forms.Control).Focus();
lGrid.Bookmark = 1;
lGrid.Col = 1;
lGrid.Row = 1;
}
}
}
}Método alternativo mediante el uso de la propiedad CampoNuevaFila.
Código VB6:
Sub Initialize()
gform.Controls("Botonera").ActivarScripts = True
End Sub
Sub Botonera_AfterExecute(aBotonera, aBoton)
If aboton.name = "botGuardar" Then
Establecefoco
End If
End Sub
Sub Establecefoco ()
Dim g 'As AhoraOCX.cntGridUsuario
Set g = gForm.Controls("grdlineas")
If g.rowcount = 0 Then
g.CampoNuevaFila = "@CodigoBarras"
End If
End SubCódigo C#:
using AhoraSistema;
using AhoraOCX;
using AhoraCore;
namespace AhoraScriptsPantalla
{
public class AhoraCl_frmAlbaranes : AhoraOCX.AhoraBaseScript
{
public void Initialize()
{
(gForm.Controls["Botonera"] as ICntBotonera).ActivarScripts = true;
}
public void Botonera_AfterExecute(ICntBotonera aBotonera, IAhoraTool aBoton)
{
if (aBoton.Name == "botGuardar")
{
EstableceFoco();
}
}
private void EstableceFoco()
{
ICntGridUsuario lGrid = (ICntGridUsuario)gForm.Controls["grdLineas"];
if (lGrid.RowCount == 0)
{
lGrid.CampoNuevaFila = "@CodigoBarras";
}
}
}
}