Panel - Crear un panel

Creado por David Miralpeix, Modificado el Fri, 16 Feb 2024 a las 12:25 PM por David Miralpeix

Los paneles son contenedores de controles.
Se crean con la instrucción:


Código VB6:

Set lPnlSupI = gForm.Controls.Add("AhoraOCX.cntPanel", "pers_pnlSupI", gForm)


Código C#:

<NombrePanel> = gForm.Controls.Add("AhoraOCX.CntPanel", "<NombreControlPanel>", gForm);
Tienen las siguientes propiedades:

ResizeEnabled = (boolean) Establece el dimensionado del control automático
ResizeV = (numeric) Indica la posición vertical de la matríz de redimensionamiento
ResizeH = (numeric) Indica la posición horizontal de la matríz de redimensionamiento
ResizeRestanteV = (boolean) Indica si el control se expande hacia abajo
ResizeRestanteH = (boolean) Indica si el control se expande hacia la derecha

ResizeInterior=(boolean) Si en su interior hay un grid, lo ajustará su tamaño (solo presente en este control)
Visible=(boolean)
Estilo = (Numeric [0 - Recuadro, 1- Superior, 2 - Sin líneas]) Dibuja un recuadro o línea superior para delimitar gráficamente el control.

Las propiedades de redimensionamiento (ResizeEnabled, ResizeV, ResizeRestanteV yResizeRestanteH) son propias de los controles contenedores de la librería ahoraOCX. Están presentes en cntPanel, cntTab, Botonera y EnlaceObjeto.
De acuerdo a estas propiedades, cuando se cambia el tamaño de un formulario, se suele llamar por código a al método gcn.Obj.Form_AutoResize [ObjFormulario].

Este método, ajusta los controles de acuerdo a la configuración de las propiedades de redimensionamiento.
Suele llamarse en todos los formularios en el evento resize del formulario.


Código VB6:

'Ejemplo:
'Crear 3 paneles. Uno superior izquierdo estático, otro a la derecha (que redimensione a la derecha) y otro en el centro (que redimensione a lo ancho y hacia abajo)

Set lPnlSupI = gForm.Controls.Add("AhoraOCX.cntPanel", "pers_pnlSupI", gForm)
     With lPnlSupI 
         .ResizeEnabled = True
         .height=3000
         .Width=3000
         .ResizeV = 2 'ocupa la posición 2 en la matríz de redimensionamiento. La posición 1 suele reservarse para el control EObjeto.
         .ResizeH = 0
         .resizeinterior=False
         .ResizeRestanteV = False
         .ResizeRestanteH = False
         .visible=True
End With

Set lPnlSupD = gForm.Controls.Add("AhoraOCX.cntPanel", "pers_pnlSupD", gForm)
     With lPnlSupD 
         .ResizeEnabled = True
         .height=3000
         .Width=3000
         .ResizeV = 2 'ocupa la posición 2 en la matríz de redimensionamiento. La posición 1 suele reservarse para el control EObjeto.
         .ResizeH = 1 'Ocupa la posición 1 vertical de la matríz de redimensionamiento
         .resizeinterior=False
         .ResizeRestanteV = False
         .ResizeRestanteH = True
         .visible=True
End With

Set lPnlCentral = gForm.Controls.Add("AhoraOCX.cntPanel", "pers_pnlCentral", gForm)
 With lPnlCentral 
     .ResizeEnabled = True
     .ResizeV = 3
     .ResizeH = 0
     .resizeinterior=True 'Aquí va a ir un grid, y le digo que redimensione el control que tenga dentro
     .ResizeRestanteV = True
     .ResizeRestanteH = True
     .visible = True
End With

'Pongo un grid en el panel central
Set lGrid = gForm.Controls.Add("AhoraOCX.cntGridUsuario", "pers_gridped", lPnlCentral)
 With lGrid 
     .Visible = True
     .AplicaEstilo
     .Agregar = False
     .Editar = false
     .Eliminar = False
     .CargaObjetos = False
     .EditarPorObjeto = False
     .AgregaColumna "IdLinea", 700, "Id Linea"
     .AgregaColumna "IdArticulo", 2000, "Id Artículo"
     .AgregaColumna "Descrip", 2000, "Descripcion" 
     .AgregaColumna "Cantidad", 800, "Cant"
     .AgregaColumna "Precio_EURO", 800, "Precio(€)"
     .AgregaColumna "Descuento", 800, "Dto."
     .FROM = "PEDIDOS_CLI_LINEAS"
     .Where = "Where IdPedido = 1"
     .refresca = True
End With


Código C#:

using AhoraOCX;
using AhoraCore;
using AhoraSistema;
using static AhoraCore.VBA.Interaction;

namespace AhoraScriptsPantalla
{
  public class AhoraScripts_frmPersPanel1 : AhoraOCX.AhoraBaseScript
  {

    public void Show()
    {
        (gForm.Controls["panMain"] as ICntPanel).Visible = false;
        ICntPanel lPnlSupI = (ICntPanel)gForm.Controls.Add("AhoraOCX.CntPanel", "pers_pnlSupI", gForm);
        lPnlSupI.ResizeEnabled = true;
        lPnlSupI.Height = 200;
        lPnlSupI.Width = 200;
        lPnlSupI.ResizeV = 2;
        lPnlSupI.ResizeH = 0;
        lPnlSupI.ResizeInterior = false;
        lPnlSupI.ResizeRestanteV = false;
        lPnlSupI.ResizeRestanteH = false;
        lPnlSupI.Visible = true;
        lPnlSupI.Text = "pers_pnlSupI";
        lPnlSupI.Top = 50;

        ICntPanel lPnlSupD = (ICntPanel)gForm.Controls.Add("AhoraOCX.CntPanel", "pers_pnlSupD", gForm);
        lPnlSupD.ResizeEnabled = true;
        lPnlSupD.Height = 200;
        lPnlSupD.Width = 200;
        lPnlSupD.ResizeV = 2;
        lPnlSupD.ResizeH = 1;
        lPnlSupD.ResizeInterior = false;
        lPnlSupD.ResizeRestanteV = false;
        lPnlSupD.ResizeRestanteH = true;
        lPnlSupD.Visible = true;
        lPnlSupD.Text = "pers_pnlSupD";
        lPnlSupD.Top = 50;

        ICntPanel lPnlCentral = (ICntPanel)gForm.Controls.Add("AhoraOCX.CntPanel", "pers_pnlCentral", gForm);
        lPnlCentral.ResizeEnabled = true;
        lPnlCentral.ResizeV = 3;
        lPnlCentral.ResizeH = 0;
        lPnlCentral.ResizeInterior = true;
        lPnlCentral.ResizeRestanteV = true;
        lPnlCentral.ResizeRestanteH = true;
        lPnlCentral.Visible = true;
        lPnlCentral.Top = gForm.Controls["pers_pnlSupD"].Top + gForm.Controls["pers_pnlSupD"].Height;

        ICntGridUsuario lGrid = (ICntGridUsuario)gForm.Controls.Add("AhoraOCX.CntGridUsuario", "pers_griped", lPnlCentral);
        lGrid.Visible = true;
        lGrid.Agregar = false;
        lGrid.Editar = false;
        lGrid.Eliminar = false;
        lGrid.CargaObjetos = false;
        lGrid.EditarPorObjeto = false;
        lGrid.AgregaColumna("IdLinea", 47, "Id.Línea");
        lGrid.AgregaColumna("IdArticulo", 133, "Id.Artículo");
        lGrid.AgregaColumna("Descrip", 133, "Descripción");
        lGrid.AgregaColumna("Cantidad", 53, "Cant.");
        lGrid.AgregaColumna("Precio_EURO", 53, "Precio(€)");
        lGrid.AgregaColumna("Descuento", 53, "Dto.");
        lGrid.From = "Pedidos_Cli_Lineas";
        lGrid.Where = "WHERE IdPedido = 1";
        lGrid.Refresca = true;
    }
  }
}


¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo