ComboUsuario - Crear ComboUsuario

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

Crear un control de tipo combo mediante código


Código VB6:

set lControl = gForm.Controls.Add("AhoraOCX.ComboUsuario", "Pers_MiControlCombo", Gform.controls("TabDatos"))
With lControl 
     .C1Nombre = "NombreCol1"
     .C1TipoDato = 2
     .C1Anchura = 3000
     .C2Nombre = "NombreCol2"
     .C2TipoDato = 2
     .C2Anchura = 800
     .CActiva = 2
     .NColumnas=2
     .Descripcion="Select Col1, Col2 from VistaOTabla order by Col1"
     .Formato = "Mayusculas y Minusculas"
     .TipoDato = "String"
     .ObjOrigen = "EObjeto"
     .ObjPOrigen = "PropiedadDeObjeto"
     .visible = True
     .CaptionVisible = True
     .CaptionControl = "CaptionEtiqueta"
     .CaptionWidth = 1800
     .Enabled = True
     .CaptionLink = true
     .move 0,0,3800,300
     .AplicaEstilo 
     .TabStop=True
     .TabIndex = 25
End With

--- Los valores diponibles para definir el tipo de dato de una columna de un combo son:
0 Variant
11 Boolean
17 Byte
2 Entero
3 Long
4 Simple
5 Doble
6 Moneda
7 Fecha
8 Texto


Código C#:

Para este ejemplo crearemos un nuevo combo en frmDelegaciones cuya segunda columna será la columna activa (IdCliente) mediante el método CrearControl del propio ComboUsuario.


using AhoraSistema;
using AhoraOCX;
using AhoraCore;

namespace AhoraScriptsPantalla
{
  public class AhoraCl_frmDelegaciones : AhoraOCX.AhoraBaseScript
  {

        private IComboUsuario pIdCalendario;

        public void Initialize()
    {

(gForm.Controls["Botonera"] as ICntBotonera).ActivarScripts = true;

      // Captura de control "IdDelegacionCli". Usaremos su "Parent" de contenedor para el campo que vamos a crear, así como recuperar sus propiedades relativas a dimensión y posición
            pIdCalendario = (IComboUsuario)gForm.Controls["IdCalendario"];

            IComboUsuario claseComboUsuario = new ComboUsuario();
            IComboUsuario campoPers = (IComboUsuario)claseComboUsuario.CrearNuevoControl(
                gForm,                          // Formulario
                "persComboUsuario",                   // NombreControl
                "C.Pers:",                        // Caption
                pIdCalendario.Left,                    // Posición horizontal (Left)
                pIdCalendario.Top + pIdCalendario.Height + 5,      // Posición vertical (Top)
                210,                          // Ancho (en píxeles)
                20,                            // Alto (en píxeles)
                (IControl)pIdCalendario.Parent,              // Control Contenedor
                true,                          // ¿Caption visible?
                ETipoDato.String,                    // Tipo de dato
                EFormatoCampo.NoEstablecido,                            // Formato de campo
                63,                            // Ancho de etiqueta (en píxeles)
                19,                            // Índice de tabulación
                "SELECT Cliente, IdCliente FROM Clientes_Datos",        // SQL del combo
                2,                            // Nº de columnas
                2,                                                      // Nº de columna activa
                "Cliente",                                              // Nombre campo columna 1
                ETipoDatoColumnaCombo.Texto,                            // Tipo de dato columna 1
                150,                                                    // Anchura columna 1 (en píxeles)
                "Nombre Cli.",                                           // Descripción columna 1
                "IdCliente",                                            // Nombre campo columna 2
                ETipoDatoColumnaCombo.Texto,                           // Tipo de dato columna 2
                75,                                                     // Anchura columna 2 (en píxeles)
                "Id."                                                  // Descripción columna 2
                );
        }   

    public void Botonera_BeforeExecute(ICntBotonera aBotonera, IAhoraTool aBoton, ref Valor aCancel)
    {
      IComboUsuario comboPers = (gForm.Controls["persComboUsuario"] as IComboUsuario);
      AhoraCore.VBA.Interaction.MsgBox(comboPers.Text);
    }

  }
}


¿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