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
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo