Tomar control de un formulario que ya está abierto en la aplicación.


La función gcn.Obj.Objetos.dameforms / gCn.Obj.OnDameForms recibe el parámetro de la librería y retorna los formularios de la aplicación.
Con una sentencia For each podemos acceder al formulario y consultar contenido o modificarlo.

 

Código VB6:

Sub Main()
         'Cambiar el caption del formulario principal
         frmAux.Descargar 'ATENCIÓN: DEBE ESTAR SIEMPRE QUE NO SE MUESTRE EL FORMULARIO.

	For Each lobj In gcn.obj.objetos.dameforms("AhoraObjLinks")
		If TypeName(lObj) = "frmColMultiple_IE" Then
			lObj.caption = "caption que quieras"
			Exit For
		End If
	 Next
End Sub


Código C#:

using AhoraCore;
using AhoraOCX;

namespace AhoraScriptsVacia
{
    public class Script_21 : AhoraOCX.AhoraBaseScript
    {
        public void Main()
        {
            // Cambiar el Text del formulario de Clientes (si está abierto)
            IVB6Collection<IForm> lForms = gCn.Obj.OnDameForms("AhoraCl");
            if (lForms is not null)
            {
                foreach (IForm lForm in lForms)
                {
                    if (lForm.Name == "frmClientes")
                    {
                        lForm.Text = "Caption que quieras";
                        break;
                    }
                }
                lForms = null;
            }
        }
    }
}