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 Sub
Có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 Sub
Có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"; } } } }