Scroll en un frame
Publicado por tono (34 intervenciones) el 05/03/2007 09:06:46
Hola a tod@s. Tengo un frame en un formulario de mi aplicación y un botón que añade controles a mi frame cuando lo pulso.
Cuando se pulsa el botón "añadir campo" se van añadiendo al frame de forma consecutiva varios label y varios TextBox.
Lo único que quiero es que cuando el frame tenga cierta altura pues aparezca de forma automática un scroll.
El código del botón "añadir campo" es el siguiente:
Private Sub Label5_Click()
n = n + 1 'aumentamos el contador de campos
indice = indice + 1 ' aumentamos el index
indice2 = indice2 + 1
Load TextCampo(indice) ' creamos el control
TextCampo(indice).Visible = True ' lo hacemos visible
TextCampo(indice).Top = TextCampo(indice - 1).Top + TextCampo(indice).Height + 120 ' movemos el control
Load Campo(indice2) ' creamos el control
Campo(indice2).Visible = True ' lo hacemos visible
Campo(indice2).Top = TextCampo(indice).Top
Load NumeroCampo(indice2) ' creamos el control
NumeroCampo(indice2).Visible = True ' lo hacemos visible
NumeroCampo(indice2).Caption = indice2
NumeroCampo(indice2).Top = TextCampo(indice).Top
Load Apartado(indice) ' creamos el control
Apartado(indice).Visible = True ' lo hacemos visible
Apartado(indice).Top = TextCampo(indice).Top
Load TextApartado(indice) ' creamos el control
TextApartado(indice).Visible = True ' lo hacemos visible
TextApartado(indice).Top = TextCampo(indice).Top
Load Naturaleza(indice) ' creamos el control
Naturaleza(indice).Visible = True ' lo hacemos visible
Naturaleza(indice).Top = TextCampo(indice).Top
Load ComboNaturaleza(indice) ' creamos el control
ComboNaturaleza(indice).Visible = True ' lo hacemos visible
ComboNaturaleza(indice).AddItem "observable"
ComboNaturaleza(indice).AddItem "medible"
ComboNaturaleza(indice).AddItem "comprobable"
ComboNaturaleza(indice).Top = TextCampo(indice).Top
End Sub
Todos estos elementos se añaden al frame, y el frame tiene la propiedad ContinuosScroll=True, por lo que se supone que conforme voy añadiendo campos pues debería de salir y no es así.
Por otro lado he probado a ir agrandando el ancho del frame, de forma que cada vez que se pulsa el botón pues hacer lo siguiente:
Contenedor.Height=Contenedor.Height+220
y ahí si que sale el Scroll, pero claro al añadir una cantidad de campos, el scroll no es capaz de llegar a la cantidad de campos que se van añadiendo, además de que el contenedor sobrepasa el ancho del formulario y por tanto esa solución no es muy viable.
¿alguna ayuda por favor?
Gracias, tono.
Cuando se pulsa el botón "añadir campo" se van añadiendo al frame de forma consecutiva varios label y varios TextBox.
Lo único que quiero es que cuando el frame tenga cierta altura pues aparezca de forma automática un scroll.
El código del botón "añadir campo" es el siguiente:
Private Sub Label5_Click()
n = n + 1 'aumentamos el contador de campos
indice = indice + 1 ' aumentamos el index
indice2 = indice2 + 1
Load TextCampo(indice) ' creamos el control
TextCampo(indice).Visible = True ' lo hacemos visible
TextCampo(indice).Top = TextCampo(indice - 1).Top + TextCampo(indice).Height + 120 ' movemos el control
Load Campo(indice2) ' creamos el control
Campo(indice2).Visible = True ' lo hacemos visible
Campo(indice2).Top = TextCampo(indice).Top
Load NumeroCampo(indice2) ' creamos el control
NumeroCampo(indice2).Visible = True ' lo hacemos visible
NumeroCampo(indice2).Caption = indice2
NumeroCampo(indice2).Top = TextCampo(indice).Top
Load Apartado(indice) ' creamos el control
Apartado(indice).Visible = True ' lo hacemos visible
Apartado(indice).Top = TextCampo(indice).Top
Load TextApartado(indice) ' creamos el control
TextApartado(indice).Visible = True ' lo hacemos visible
TextApartado(indice).Top = TextCampo(indice).Top
Load Naturaleza(indice) ' creamos el control
Naturaleza(indice).Visible = True ' lo hacemos visible
Naturaleza(indice).Top = TextCampo(indice).Top
Load ComboNaturaleza(indice) ' creamos el control
ComboNaturaleza(indice).Visible = True ' lo hacemos visible
ComboNaturaleza(indice).AddItem "observable"
ComboNaturaleza(indice).AddItem "medible"
ComboNaturaleza(indice).AddItem "comprobable"
ComboNaturaleza(indice).Top = TextCampo(indice).Top
End Sub
Todos estos elementos se añaden al frame, y el frame tiene la propiedad ContinuosScroll=True, por lo que se supone que conforme voy añadiendo campos pues debería de salir y no es así.
Por otro lado he probado a ir agrandando el ancho del frame, de forma que cada vez que se pulsa el botón pues hacer lo siguiente:
Contenedor.Height=Contenedor.Height+220
y ahí si que sale el Scroll, pero claro al añadir una cantidad de campos, el scroll no es capaz de llegar a la cantidad de campos que se van añadiendo, además de que el contenedor sobrepasa el ancho del formulario y por tanto esa solución no es muy viable.
¿alguna ayuda por favor?
Gracias, tono.
Valora esta pregunta


0