Visual Basic - Controles en tiempo de ejecucion

Life is soft - evento anual de software empresarial
 
Vista:

Controles en tiempo de ejecucion

Publicado por Alfonso (103 intervenciones) el 11/03/2005 10:59:46
Hola!! Necesito saber como crear y eliminar controles de Visual Basic 6 (TextBox, ComboBox, Picture...) en tiempo de ejecución. Sí es posible, añadir algún ejemplo, sino pues nada. Muchas gracias a todos!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Controles en tiempo de ejecucion

Publicado por Maghdiel (20 intervenciones) el 19/03/2005 22:41:27
Este es un ejemplo para que te guies

Creando un array de controles (o una matriz, como prefieras llamarlo), esta es la forma clásica de hacerlo (y la más recomendable para la mayoría de los casos). Lo único que hay que hacer es añadir un control de cada uno de los que queramos "crear" en tiempo de ejecución, y asignarle el valor CERO a la propiedad Index. Ésto último es importante hacerlo ya que los nuevos controles se manejan mediante un array de controles.

Usando el método Add de la colección Controls. Aunque esto último sólo es posible hacerlo con la versión 6 del Visual Basic. El inconveniente de esta otra forma de crear controles en tiempo de ejecución es que no podemos crear un array de controles (al menos que queramos interceptar los eventos que se produzcan).

En el código de ejemplo que te muestro a continuación veremos cómo usar las dos formas.

Empecemos con la forma válida para todas las versiones de Visual Basic.

Para crear este ejemplo, crea un nuevo proyecto, añade un CommandButton (Command1), una etiqueta (Label1) y un TextBox (Text1), a estos dos últimos controles asignale el valor CERO a la propiedad Index para que tengamos un array de cada uno de estos controles.
Añade el siguiente código:

Option Explicit

Private Sub Command1_Click()
' Crear un nuevo control Label y un Textbox
Dim i As Long
'
' Los array de controles son "en el fondo" colecciones de base cero,
' el número actual de controles nos dará el índice del siguiente índice
' (siempre que se hayan añadido de forma correlativa)
i = Label1.Count
' car
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar