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