Вы находитесь на странице: 1из 22

Control Tabstrip Referencia

- Descripcin
Un control TabStrip es como los separadores de un cuaderno o las etiquetas de un
grupo de carpetas de archivo.
Mediante este se pueden definir varias pginas para la misma rea de una ventana o
cuadro de dilogo en su aplicacin.
El control consiste en uno o ms objetos Tab de una coleccin Tabs . Tanto en tiempo
de diseo como en tiempo de ejecucin puede cambiar la apariencia del objeto Tab
estableciendo propiedades.

Tambin puede agregar y quitar fichas utilizando la Pgina de propiedades del control
TabStrip en tiempo de diseo o bien agregar y quitar objetos Tab en tiempo de
ejecucin mediante mtodos.
Este control no es un contenedor como el sstab . Para contener las pginas reales y
sus objetos, debe usar controles Frame u otro tipo de contenedores que coincidan con
el tamao del rea interna compartida por todos los objetos Tab del control. Si usa
una matriz de controles para el contenedor, puede asociar cada elemento de la matriz
con un objeto Tab especfico, como en el siguiente ejemplo:

Option Explicit
Private mintCurFrame As Integer ' Marco activo visible
Private Sub Form_Load()
mintCurFrame = TabStrip1.SelectedItem.Index
End Sub
Private Sub Tabstrip1_Click()
If TabStrip1.SelectedItem.Index = mintCurFrame Then
Exit Sub ' No necesita cambiar el marco.
End If
' Oculte el marco antiguo y muestre el nuevo.
Frame1(TabStrip1.SelectedItem.Index).Visible = True
Frame1(mintCurFrame).Visible = False
' Establece mintCurFrame al nuevo valor.
mintCurFrame = TabStrip1.SelectedItem.Index
End Sub
Descargar

Nota Cuando agrupe controles en un contenedor, es mejor usar mostrar u ocultar en


vez de usar el mtodo Zorder para traer al frente un marco de objeto. Por otra parte,
los controles que tengan asociadas teclas de acceso (ALT + tecla de acceso) an
respondern a los comandos de teclado, aunque el contenedor no sea el control ms
alto. Observe tambin que debe separar los grupos de los controles OptionButton
para ubicar cada grupo en su propio contenedor, o por el contrario todos los controles
OptionButtons del formulario se comportarn como un gran grupo de controles
OptionButtons .
Sugerencia Utilice un control Frame con su BorderStyle establecido a None como
el contenedor, en lugar de un control PictureBox . Un control Frame consume menos
recursos que un control PictureBox .
Nota para la distribucin
El control TabStrip forma parte de un grupo de
controles personalizados que se encuentran en el archivo MSCOMCTL.OCX. Para usarlo
en su aplicacin, debe agregar el archivo MSCOMCTL.OCX al proyecto. Cuando

distribuya su aplicacin, instale el archivo MSCOMCTL.OCX en el directorio SYSTEM de


Microsoft Windows del usuario.

Tabs (Coleccin)
La propiedad Tabs del control TabStrip es la coleccin de todos los objetos Tab .
Cada objeto Tab tiene propiedades asociadas con su estado y apariencia actuales. Por
ejemplo, puede asociar un control ImageList con el control TabStrip y despus usar
imgenes en fichas individuales. Tambin puede asociar una informacin sobre
herramientas con cada objeto Tab .
Una coleccin Tabs contiene un conjunto de objetos Tab .
Sintaxis
tabstrip . Tabs ( ndice )
tabstrip . Tabs . Item ( ndice )
La sintaxis de la coleccin Tabs consta de las siguientes partes:
Parte
tabstrip
ndice

En tiempo de diseo, use los botones Insertar ficha y Quitar ficha de la ficha Fichas
de la Pgina de propiedades para agregar y quitar objetos Tab de la coleccin Tabs .
La coleccin Tabs utiliza la propiedad Count para devolver el nmero de fichas de la
coleccin.
Por ejemplo lo siguiente , aade cuatro tabs en tiempo de ejecucin y luego visualiza
mediante un MsgBox la cantidad

Dim i As Integer
TabStrip1.Tabs.Clear
For i = 1 To 3
TabStrip1.Tabs.Add , , "Ficha " & i
Next

MsgBox "Cantidad de tabs : " & TabStrip1.Tabs.Count

Para manipular los objetos Tab de la coleccin Tabs , utilice estos mtodos en tiempo
de ejecucin:

Add : agrega objetos Tab al control TabStrip .

Item : recupera el objeto Tab identificado por su Key o Index de la


coleccin.

Clear : quita todos los objetos Tab de la coleccin.

Remove : quita el objeto Tab identificado mediante su Key o Index


de la coleccin.

Ejemplo de esto ltimo


Descargar

El objeto Tab
Un objeto Tab representa una ficha individual de la coleccin Tabs

Comentarios

Para cada objeto Tab puede emplear varias propiedades con el fin de especificar su
apariencia y tambin puede especificar su estado con la propiedad Selected .
Lo siguiente , al presionar un CommandButton, determina si la ficha con indice 2 est
seleccionada

If TabStrip1.Tabs(2).Selected = True Then


MsgBox "SI Est seleccionada", vbInformation
Else
MsgBox "NO Est seleccionada", vbInformation
End If

Lo siguiente lo que hace es seleccionar una ficha mediante cdigo, usando la propiedad
Selected y colocandola en true
En este caso selecciona el tab con indice 4

TabStrip1.Tabs(4).Selected = True

En tiempo de diseo, use los botones Insertar ficha y Quitar ficha de la ficha Fichas
en la Pgina de propiedades del control TabStrip para insertar y quitar fichas, y utilice
los cuadros de texto para especificar cualquiera de estas propiedades para un objeto
Tab : Caption , Image , ToolTipText , Tag , Index o Key . Tambin puede
especificar estas propiedades en tiempo de ejecucin.

Use las propiedades Caption e Image , por separado o juntas, para etiquetar o poner
un icono en una ficha.
Por ejemplo lo siguiente, establece en tiempo de ejecucin , el caption de la ficha 1

TabStrip1.Tabs(1).Caption = "Un Texto"

Esto otro, cambia en tiempo de ejecucin , la imagen de la ficha 3 ( La imagen est


ubicada en el imagelist )

TabStrip1.Tabs(1).Image = 3
Ejemplo para enlazarlo a un control imageList en tiempo de ejecucin

Para usar la propiedad Caption , en el cuadro de texto Ttulo en la


Pgina de propiedades , escriba el texto que desee mostrar en la ficha
o en el botn en tiempo de ejecucin.

Para usar la propiedad Image , ponga un control ImageList en el


formulario y llene la coleccin ListImages con objetos ListImage ,
dndole a cada uno de ellos un nmero de ndice y una clave opcional.
En la ficha General de la Pgina de propiedades, seleccione ese
ImageList para asociarlo con el control TabStrip . En el cuadro de
texto Image de la ficha Fichas , escriba el nmero de ndice del
objeto ListImage que debe aparecer en el objeto Tab .

Use la propiedad ToolTipText para mostrar temporalmente una cadena de texto en un


pequeo cuadro rectangular en tiempo de ejecucin cuando el cursor del usuario se
posa sobre la ficha.
Para establecer la propiedad ToolTipText en tiempo de diseo, active la casilla de
verificacin ShowTips en la ficha General y despus escriba la cadena de informacin
sobre herramientas en el cuadro de texto ToolTipText .
Para devolver una referencia a un objeto Tab que un usuario ha seleccionado, use la
propiedad SelectedItem ; para determinar si una ficha especfica se ha seleccionado,
use la propiedad Selected . Estas propiedades son tiles junto con el evento
BeforeClick para comprobar o grabar datos asociados con la ficha seleccionada
actualmente antes de mostrar la siguiente ficha seleccionada por el usuario.
Cada objeto Tab tambin tiene propiedades de slo lectura que puede usar para hacer
referencia a un nico objeto Tab de la coleccin Tabs : Left , Top , Height y Width .

Add (Mtodo, coleccin Tabs)


Agrega un objeto Tab a una coleccin Tabs en un control TabStrip .
Sintaxis
objeto. Add( ndice, clave, ttulo, imagen )
La sintaxis del mtodo Add consta de las siguientes partes:

Parte
objeto
ndice
clave
ttulo
imagen

Comentarios
Para agregar fichas en tiempo de diseo , haga clic en el botn Insertar ficha de la
ficha Fichas de la Pgina de propiedades del control TabStrip y complete los campos
apropiados para la nueva ficha.
Para agregar fichas en tiempo de ejecucin , utilice el mtodo Add , que devuelve una
referencia al objeto Tab recin insertado. Por ejemplo, el siguiente cdigo agrega una
ficha con el ttulo "Hola" y cuya clave es "MiFicha", como la segunda ficha (su ndice es
2).

Set X = TabStrip1.Tabs.Add(2,"MiFicha","Hola")

Ejemplo del mtodo Add (Coleccin Tabs)


Este ejemplo agrega tres objetos Tab , cada uno con ttulos e imgenes de un control
ImageList , a un control TabStrip . Para probar este ejemplo, ponga un control
ImageList y un control TabStrip en un formulario. El control ImageList proporciona
las imgenes para los objetos Tab . Pegue el siguiente cdigo en el evento Load del
objeto Form y ejecute el programa.

Private Sub Form_Load()


Dim X As Integer
Set TabStrip1.ImageList = ImageList1
TabStrip1.Tabs(1).Caption = "Hora"
TabStrip1.Tabs.Add 2, , "Fecha"
TabStrip1.Tabs.Add 3, , "Correo"
For X = 1 To TabStrip1.Tabs.Count
TabStrip1.Tabs(X).Image = X
Next X
End Sub

Propiedades
Propiedad MultiRow
Devuelve o establece un valor que indica si un control TabStrip puede mostrar ms de
una fila de fichas.

El nmero de filas se establece automticamente segn el ancho y el nmero de


fichas. El nmero de filas puede cambiar si el control cambia de tamao, lo que
asegura que la ficha se ajusta a la siguiente fila. Si MultiRow es False y la ltima
ficha excede el ancho del control, se agregar un control numrico horizontal en el
extremo derecho

En tiempo de diseo , site la propiedad MultiRow en la ficha General de la Pgina de


propiedades . En tiempo de ejecucin , use cdigo como el siguiente para establecer la
propiedad MultiRow :

' Permite ms de una fila


TabStrip1.MultiRow = TRUE

de

fichas

en

el

control

TabStrip.

Propiedades - TabFixedHeight, TabFixedWidth


Devuelven o establecen el alto y el ancho fijo de todos los objetos Tab , pero slo si la
propiedad TabWidthStyle est establecida a tabFixed .
La propiedad TabFixedHeight se aplica a todos los objetos Tab del control TabStrip .
Se establece de manera determinada como el alto de la fuente, como queda
especificado en la propiedad Font, o el alto del objeto ListImage especificado por la
propiedad Image, lo que sea mayor, mas unos pocos pxeles extra que hacen de borde.
Si la propiedad TabWidthStyle est establecida a tabFixed y el valor de la propiedad
TabFixedWidth est establecido, el ancho de cada objeto Tab sigue siendo igual
tanto si se agregan como si se eliminan objetos Tab en el control.

Propiedad TabWidthStyle
Propiedad que Devuelve o establece un valor que determina la justificacin o ancho de
todos los objetos Tab
Los valores vlidos para TabWidthStyle son

tabJustified

(Predeterminado)

Justificado.

Si

la

propiedad

MultiRow es True, cada ficha es lo suficientemente ancha como para


dar cabida a su contenido y, si es necesario, el ancho de cada ficha se
incrementa de manera que cada fila ocupa el ancho del control. Si la
propiedad MultiRow es False, o si slo hay una fila de fichas, este
valor no tiene ningn efecto.

tabNonJustified : No justificado. Cada ficha es lo suficientemente


ancha como para dar cabida a su contenido. Las filas no se justifican,
por lo que terminan de manera irregular.

tabFixed : Fijo. Todas las fichas tienen un ancho idntico que se


determina por la propiedad TabFixedWidth .

Ejemplo para establecer la propiedad en tiempo de ejecucin:

' Justifica todas las fichas de una fila para ajustarlas ' al ancho
del control.
TabStrip1.MultiRow = True
TabStrip1.TabWidthStyle = tabJustified
' Crea filas de fichas desiguales.
TabStrip1.MultiRow = True
TabStrip1.TabWidthStyle = tabNonJustified
' Establece el mismo ancho para todas las fichas.
TabStrip1.TabFixedWidth = 500
TabStrip1.TabWidthStyle = tabFixed

Propiedad Style
Devuelve o establece la apariencia, fichas o botones, de un control TabStrip .
Sintaxis
objeto. Style [ = valor ]
La propiedad Style determina si el control tiene la apariencia de un botn de comando
(Buttons) o de un separador de carpeta (Tabs). En tiempo de diseo, cuando pone un
control TabStrip en un formulario, tiene un separador de carpeta. Si elige el valor
tabTabs para la propiedad Style , habr un borde alrededor del rea interna del
control TabStrip . Aunque el valor tabButtons de la propiedad Style no muestra
ningn borde alrededor del rea interna, esa rea existe.

La sintaxis de la propiedad Style consta de las siguiente partes:


Los valores vlidos para valor son:

TabTabs : (Predeterminado) Fichas. Las fichas aparecen como


separadores

de

cuadernos

tridimensional alrededor.

el

rea

interna

tiene

un

borde

TabButtons : Botones. Las fichas aparecen como botones de


comando normales y el rea interna no tiene borde alrededor.

TabFlatButtons : Botones lisos. La ficha seleccionada aparece como


hundida en el fondo. Las fichas no seleccionadas aparecen lisas.

Para cambiar en tiempo de diseo la propiedad Style, hacerlo desde la pgina de


propiedades, y en tiempo de ejecucin por ejemplo

' Propiedad Style establecida a Tabs.


TabStrip1.Style = tabTabs
' Propiedad Style establecida a Buttons.
TabStrip1.Style = tabButtons

Propiedad Separators

Devuelve o establece un valor que determina si se dibujan separadores entre los


botones de un control TabStrip que tenga los estilos tabButton o tabFlatButton .

Sintaxis
objeto . Separators [ = booleano ]

Importante : Para mostrar los separadores, la propiedad Style debe tener el valor
tabButton o tabFlatButton .

Eventos principales
BeforeClick (Evento)
Se genera cuando se hace clic en un objeto Tab de un control TabStrip o cuando el
valor Selected de un objeto Tab ha cambiado.
Sintaxis
Private Sub objeto _BeforeClick( Cancel As Integer)
La sintaxis del evento BeforeClick consta de las siguientes partes:
Comentarios
Use el evento BeforeClick para validar la informacin del objeto Tab antiguo antes de
generar realmente un evento Click que seleccione el nuevo objeto Tab . Establecer el
argumento cancel a True le permite detener un cambio a la nueva seleccin.
Nota
Establecer el argumento cancel a True evita que el enfoque cambie a otra
ficha pero no detendr el evento Click.

Nota Si usa las funciones MsgBox o InputBox durante el procedimiento de evento


BeforeClick, el control TabStrip no recibir un evento Click, cualquiera que sea el valor
del argumento cancel.

Ejemplo
Este ejemplo usa el evento BeforeClick para demostrar cmo evitar que un usuario
cambie a otra ficha. Esto es til cuando desea comprobar informacin en la ficha actual
antes de mostrar la ficha recin seleccionada.
Para probar este ejemplo, ponga un control TabStrip y una matriz de controles Frame
de dos elementos en el formulario (establezca la propiedad BorderStyle a None ). En
el primer control Frame , agregue un control CheckBox y en el segundo, agregue un
TextBox . Pegue el siguiente cdigo en el evento Load del objeto Form y ejecute el
programa. Haga clic en la ficha titulada Texto despus de activar o desactivar el
CheckBox en la ficha titulada Casilla.

Private Sub Form_Load()


Dim i As Integer
Dim Tabx As Object
' Establece el ttulo de la primera ficha como "Casilla"
TabStrip1.Tabs(1).Caption = "Casilla"
' Agrega una segunda ficha con "Texto" como ttulo.
Set Tabx = TabStrip1.Tabs.Add(2, , "Texto")
' Etiqueta la casilla de verificacin.
Check1.Caption = "Cancelar cambio de ficha"
' Alinea los marcos con el rea interna
' del control Tabstrip.
For i = 0 To 1
Frame1(i).Left = TabStrip1.ClientLeft
Frame1(i).Top = TabStrip1.ClientTop
Frame1(i).Height = TabStrip1.ClientHeight
Frame1(i).Width = TabStrip1.ClientWidth
Next
' Pone arriba el contenedor de marco
' de la primera ficha.
Frame1(0).ZOrder 0
End Sub
' El evento BeforeClick comprueba el valor de la casilla

' de verificacin para determinar si se contina con el


' evento Click.
Private Sub TabStrip1_BeforeClick(Cancel As Integer)
If TabStrip1.Tabs(1).Selected Then
If Check1.Value = 1 Then Cancel = True
End If
End Sub
Private Sub TabStrip1_Click()
Frame1(TabStrip1.SelectedItem.Index-1).ZOrder 0
End Sub

Evento Click
evento que se desencadena al hacer clic en un objeto Tab o al cambiar la propiedad
Value de la ficha. Se usa para comprobar parmetros antes de que se genere el evento
Click.
Por ejemplo lo siguiente , al hacer click en un tab, muestra el captio de la ficha
seleccionada

Private Sub TabStrip1_Click()


MsgBox TabStrip1.SelectedItem.Caption
End Sub

vb 6.0 - Enlaces relacionados

Crear Formulario Mdi con fichas

Cdigo fuente de un Navegador web con pestaas

Xtabs - Usercontrol

Formulario para filtrar registros - usa un Tabstrip

Cargar tablas de una base de datos y visualizarlas en un TabStrip

179 - Mdi con fichas


Contenido:

Mediante la Dll Activex

Con el TabStrip

Relacionados

Dll vbalMDITabs.dll
Dll para usar Mdi con fichas o tabs y un ejemplo para hacerlo mediante un TabStrip
Este componente activex creado por VbAccelerator , permite utilizar aplicaciones con
interfaces MDI y los formularios hijos cargarlos mediante fichas o tabs

Desde la web de Vb Accelerator, hay un ejemplo bien completo para usar el


componente. La url del enlace es : MDITabs Full Source Code

En este otro enlace un ejemplo mas resumido : ( Registrar previamente en el sistema


el archivo dll activex que se encuentran en el directorio : vbalMDITabs.dll )
Descargar

Descripcin bsica del componente :

Para poder iniciar el componente , y que los formularios child se carguen, se debe en el
Form Load del Mdi , usar el mtodo Attach, y luego cargar los formularios si se desea
Por ejemplo :

Private Sub MDIForm_Load()


' nueva instancia del componente
Set m_cMDITabs = New cMDITabs
' lo inicia
m_cMDITabs.Attach Me.hWnd
' carga 4 formularios
Form1.Show
Form4.Show
Form3.Show
Form2.Show
' refresca
m_cMDITabs.ForceRefresh
End Sub

Nota: es necesario ejecutar el mtodo ForceRefresh para que los tabs se visualicen
correctamente cada ves que se cargue un form

Importante : Los formularios hijos , deben tener las siguientes propiedades para que
los Tabs se visualicen correctamente con los formularios maximizados
1.

Propiedad MdiChild en true

2.

Propiedad ControlBox en False

3.

Propiedad BorderStyle con el valor 2

4.

La propiedad MaxButton NO debe estar en False

Eventos
La dll Tiene tres eventos principales ( Declararla siempre con WithEvents )
1.

TabClick : Se dispara cuando se hace clic en una ficha

2.

WindowChanged : cuando se cambia la ventana

3.

CloseWindow : Cuando se cierra un Form

Nota : Todos estos eventos, tienen como principal parmetro el Hwnd del formulario
en el cual se est interactuando. Por eso para poder manipular el form a partir del
Hwnd, hay una simple funcin de ajuste ( que en el ejemplo se llama " formForHwnd
" ) que devuelve un objeto Form , es decir una referencia a ese Formulario.

Tambin se puede ocultar y mostrar los tabs en tiempo de ejecucin mediante la


propiedad ShowTabs :

m_cMDITabs.ShowTabs = Not m_cMDITabs.ShowTabs


.. se puede alinear las fichas ( arriba o abajo ) con la propiedad TabAlign entre otras
opciones .

Mdi con fichas usando un control TabStrip


Este ejemplo usa un control TabStrip que se ubica dentro de un control Picturebox que
est en un Mdi. (Ya que el TabStrip no se puede colocar directamente por que no posee
la propiedad Align)
Para crear las fichas y poder asociarlas a los formularios, se usan dos mdulos de clase
: clsMdi y clsFichas
El clsMdi, lo que hace es iniciar todo, y a esta clase se le debe indicar el nombre del
Mdi que se est usando y el nombre del TabStrip. Esta se ejecuta una ves sola en la
carga del mdi : por ejemplo :

Private Sub MDIForm_Load()


' nueva instancia de la clase para el MDI
Set ObjMdi = New clsMDI
' le pasa el Mdi y el TabStrip que est en el Picture1
Call ObjMdi.Iniciar(Me, TabStrip1)
End Sub

Luego de haber iniciado esta clase, para cargar los formularios se debe crear una
instancia para cada form , por ejemplo si voy a cargar tres mdi child llamados Form1,
Form2 y Form3 primero se declaran las tres variables en la zona de declaraciones del
Mdi , o en la zona de declaraciones del propio form:

Option
Dim
ObjForm1
Dim
ObjForm2
Dim ObjForm3 As New clsFicha

As
As

New
New

Explict
clsFicha
clsFicha

Luego se ejecuta el mtodo CargarForm, que tiene tres parmetros .El primero es el
nombre del formulario , el segundo es la instancia de la clase Mdi , y el tercero es un
valor opcional para la imagen que debe estar cargada en un control ImageList.

ObjForm1.CargarForm(frm1,
ObjMdi,
ObjForm2.CargarForm(Frm2,
ObjMdi,
ObjForm3.CargarForm(Frm2, ObjMdi, "icono3")

"icono1")
"icono2")

Al hacer esto, ya se crea automticamente la ficha y se asocia al form que se indic


anteriormente .

Vista previa del ejemplo usando la versin del tabstrip que viene con el
Windows Common controls 5.0 :
Nota: si se usa esta versin , a mi me di error al cambiar en tiempo de ejecucin la
propiedad Style y las fichas no se repintan bien, inclusive forzando con la propiedad
Refresh . Adems, en esta versin no cuenta con la propiedad FlatTabs, solo con Tabs y
ButtonTabs y algunas propiedades menos que la vesin 6.0

Con el TabStrip del Windows Common controls 6.0 :


Con la propiedad Style en tabFlatButtons

El style en TabButtons

Con el Style en tabTabs ( el default ) y alineado en la parte inferior :

Nota : el ejemplo lo prob mientras lo hice, pero no lo llegu a probar a fondo, por lo
tanto no aseguro que est completamente libre de errores, adems por supuesto se
puede optimizar mucho el cdigo.
Otra cosa importante, cuando se descarga un formulario, y luego se quiere volver a
cargarlo, se debe volver a realizar como se explic antes, es decir con el mtodo
Cargarform, y NO con el Show del Formulario.

ObjForm1.CargarForm(ElForm, ObjMdi, " La imagen del imageList ")

Adems asegurarse que los forms a usar como Child deben tener la propiedad MdiChild
en True.

Вам также может понравиться