Está en la página 1de 21

Crear formulario maestro detalle en vb 6.

0
1 - Ir al men complementos de vb y cargar el complemento: vb 6 Data Form Wizard

Luego desde la ventana complementos hacer clic en : Asistente para formularios de datos de Visual basic

2 - En la ventana Tipo de Base de datos seleccionar la opcin Access y presionar al botn siguiente. Seleccionar la base de datos Nwind.mdb del directorio : C:\Archivos de programa\Microsoft Visual Studio\VB98 3 - En la siguiente ventana, seleccionar la opcin "Maestro / detalle" y la opcin de " cdigo de Ado "

4 - En la ventana " Origen de registros principal " , seleccionar del combo desplegable la tabla clientes

En los campos de la izquierda incluir los campos para el origen de registros principal , por ejemplo el campo IdCliente que es el campo relacionado , y otros campos secundarios como la direccin y el telfono

5 - En la ventana "Origen de registros de detalles " , seleccionar del combo desplegable la tabla Pedidos

En la opcin "campos disponibles" de la tabla de Pedidos , seleccionar los campos a visualizar para el origen de registros para el detalle, por ejemplo la Fecha de pedido, la fecha de entrega , Fecha de envo, y tambin el campo IdCliente

6 - Desde la ventana "Relacin de origen de registros" , seleccionar los campos relacionados para vincular la tabla maestro con la tabla detalle, es decir la columna Idcliente

Por ltimo , en la ventana "seleccin de controles" dar a finalizar y desde el men Proyecto, opcin "Propiedades de proyecto" , establecer el formulario inicial frmClientes. Formulario

Crear un reporte simple utilizando el DataReport


paso 1 - Crear la base de datos

Abrir el access y crear una base de datos llamada bd1.mdb. Crear una tabla llamada Clientes. Aadir tres campos de tipo Texto llamados: Nombre, Apellido , Email Aadir algunos datos Ubicar la base de datos en la carpeta del proyecto de visual basic.

Aadir el Datareport y Crear el reporte.


Pasos

Iniciar un nuevo proyecto y guardarlo en la carpeta donde estaba ubicada la base de datos creada anteriormente Aadir un reporte desde el men Proyecto, seleccionando la opcin DataReport.

Seleccionar el Reporte y cambiarle el nombre a ReporteClientes. Desde el men Explorador de proyecto se ver algo similar al siguiente grfico:

La vista del reporte est dividida por secciones:

Encabezado del informe Encabezado de la pgina Detalle (Donde se visualizarn los datos de la bd) y el pie de pgina.

Al aadir un reporte al proyecto, en el Cuadro de controles de visual basic, ahora se aado automticamente una pestaa con controles para el DataReport . Los controles se llaman : RptLabel, RptTextBox, RptImage, RptLine, RptShape y RptFunction ). Aunque en este ejemplo solo se usarn los RptLabel y RptTextBox. El primero para usarlo en la seccin de Encabezados, y los textBox para mostrar los registros de la base de datos.

Ahora en este paso se agregar un control rptLabel en la seccin de Encabezado de reporte ( El primero de todo ). Para ello dibujar un rptLabel en dicha seccin, si se quiere cambiarle el color de la fuente, el tamao etc.. eso es opcional y se puede hacer desde la ventana de propiedades de vb y tambin en tiempo de ejecucin. Para cambiar el texto del rptLabel, utilizar la propiedad Caption La vista quedar algo asi:

Nota: Tambin si se quiere se puede colocar una lnea con el control RptLine, para separar el encabezado principal del resto Ahora se agregarn tres RptLabel mas en la seccin Encabezado de pgina. Estos Label servirn para mostrar las columnas. En este caso aadir tres como muestra la imagen

Pods establecerle un color y estilo de fuente a gusto desde la ventana de propeidades Ahora, se utilizar el control rptTextBox para la seccin de " Detalle ". Los rptTextBox, que sern lgicamente tres, estarn enlazados mediante la propiedad DataField, a cada campo correspondiente de la tabla Clientes Aadir tres rptTextBox como se ve en el grfico:

Al aadirlos, el texto por defecto que visualiza es: " No enlazado " . Esto es por que todava no se ha especificado ningn campo para ese textbox en la propiedad DataField de los mismos Ahora seleccionar el primero y en el DataField colocar el nombre del primer campo de la base de datos que se haba creado, es decir el campo " Nombre " . Hacer lo mismo para los otros dos rptTextBox, para enlazar el campo " Apellido " y el campo " Email " Quedar mas o menos de esta forma:

Cdigo fuente en el formulario para visualizar el reporte


En este ltimo paso se aadirn tres controles CommandButton en el formulario. Un botn ser para aadir un nuevo registro a la base de datos. Otro para eliminar un registro, y el otro para visualizar el informe.

El Commandbutton para crear un nuevo registro renombrarlo a CmdAgregar El Command para eliminar un registro renombrarlo a CmdEliminar El Command para visualizar el informe renombrarlo a CmdReporte

Vista del formulario:

Ahora aadir desde el men Referencias de visual basic, la referencia para poder utilizar ADO: Microsoft Activex Data Objects El cdigo a colocar en el formulario sera el siguiente:
Texto planoImprimir

1. 2. 3.
4.

Option Explicit '* Nota: Aadir la Referencia a Microsoft Activex data Object

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Variables para el Recorset y la conexin ADO Private cn As ADODB.Connection Private rst As ADODB.Recordset ' botn para eliminar ''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub cmdEliminar_Click() Dim Nombre As String Nombre = InputBox(" Eliminar registro ", " Escriba el nombre del cliente a eliminar ") If Nombre <> vbNullString Then 'Ejecuta la sentencia SQL de eliminacin cn.Execute "DELETE FROM Clientes WHERE Nombre = '" & Nombre & "'" End If End Sub

5. 6. 7.
8.

9. 10. 11.
12. 13. 14. 15. 16. 17. 18. 19. 20.

21.
22. 23.

24. 25. 26.


27.

'Botn para aadir un registro de la base de

datos

''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub cmdAgregar_Click() On Error GoTo Error_add Dim Dim Dim Dim Nombre As String Apellido As String Email As String Sql As String

28.
29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.

Nombre = InputBox(" Aadir registros ", " Escriba el nombre") Apellido = InputBox(" Aadir registros ", " Escriba el Apellido ") Email = InputBox(" Aadir registros ", " Escriba el Email ") Sql = "INSERT INTO Clientes VALUES ( '" & Nombre & "', '" & Apellido & "', '" & Email & "')" 'Ejecuta la sentencia SQL para aadidr el registro cn.Execute Sql MsgBox " Registros aadidos ", vbInformation Exit Sub Error_add: MsgBox Err.Description, vbCritical End Sub ' botn para ver el reporte ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub CmdReporte_Click() Set rst = cn.Execute("SELECT Nombre, Apellido, Email FROM Clientes ORDER BY Nombre") 'Asigna el recordset al reporte Set ReporteClientes.DataSource = rst ' Muestra el reporte ReporteClientes.Show vbModal End Sub

46.
47.

48. 49.
50.

51. 52. 53.


54. 55. 56. 57. 58. 59. 60. 61.

62.

Ejemplo para crear un reporte con un DataEnvironment y parmetros


Este simple ejemplo realizado por Prakash muestra como crear un reporte con un Dataenvironment y poderle pasar dos parmetros en tiempo de ejecucin. Nota: En este otro enlace hay otro ejemplo : Refrescar Datareport al cambiar el valor del parmetro En el zip para descargar hay una base Access con una tabla, y uno de los campos es de tipo fecha ( campo OrderDate ). Luego en el formulario, hay dos controles Dtpicker para seleccionar el rango de fecha para obtener los registros usando la sentencia between, y poder desplegar y visualizar el reporte con el conjunto de registros

Refrescar DataEnvironment con parmetros


Crear el ejemplo
El ejemplo usa un DataEnvironment que tiene como origen de datos la base de datos Nwind.mdb.La tabla a usar es la tabla Empleados, y el reporte despliega el informe de los empleados dependiendo de la fecha de contratacin indicada en el momento de llamar al reporte desde el formulario mediante un control dtPicker, pasando como parmetro la fecha a un objeto Command previamente configurado para poder aceptar parmetros.

(1) Crear el formulario


1 - Iniciar un nuevo proyecto en visual basic 2 - En el formulario Form1 aadir un control DtPicker ( Microsoft Windows Common controls 2 6.0 ) 3 - Aadir tambin un control Commandbutton llamado command1

(2) Configurar el entorno de datos


1 - Ir al men proyecto, y seleccionar la opcin Agregar DataEnvironment

2 - Desde el explorador de proyectos de vb , seleccionar el nuevo DataEnvironment para abrir la ventana del diseador y poder configurar el entorno de datos 3 - Hacer clic derecho sobre el objeto Connection1 que es el connection que se agrega por defecto, y luego seleccionar la opcin Propiedades desde el men contextual

4 - En el cuadro de dilogo Propiedades de vnculo de datos , seleccionar el driver OleDb 4.0 desde la ficha Proveedor , y luego desde la ficha Conexin , seleccionar la base de datos demo Nwind.mdb. ubicada en el directorio de instalacin de vb . Presionar el botn Probar conexin para verificar que se pudo conectar con la base de datos correctamente.

(3) Crear un comando con parmetros


1 - Hacer clic derecho sobre el objeto connection anteriormente configurado, y seleccionar la opcin del men desplegable Agregar comando

Luego de agregar el nuevo comando, la ventana del diseador del entorno de datos se visualizar de la siguiente forma

2 - Ahora seleccionar el objeto command1 , para poder visualizar las propiedades desde la ventana de propiedades de vb para el objeto Command1. Establecer la propiedad Commandtype con el valor AdCmdText

Si se visualiza el siguiente error ..ignorarlo :

3 - Ahora escribir la siguiente consulta sql en la propiedad CommandText , donde el signo de interrogacin es el parmetro o valor que se pasar al objeto Command1 desde el formulario para visualizar el reporte, es decir se pasar un valor de tipo fecha Instruccin sql para aadir en la propiedad CommandText

Select * From Empleados where fechaContratacin <= ?

4 - Luego de hacer lo anterior, desde la ventana entorno de datos, en el objeto Command1 , se deben visualizar los campos respectivos de la tabla empleados como muestra la siguiente imagen

5 - Hacer clic derecho sobre el objeto Command1 , y desde el men contextual seleccionar la opcin propiedades Desde la ventana de propiedades de command1 , seleccionar la pestaa Parmetros

En la propiedad nombre del parmetro, establecer cualquier nombre , por ejemplo ParamFecha. En la propiedad Tipo de datos establecer el valor adDBtimeSpam En la propiedad Tipo de datos del Host seleccionar el valor Date

Presionar el botn aplicar para guardar los cambios realizados

(4) Configurar el Datareport


1 - Aadir un nuevo Datareport al proyecto desde el men "Proyecto" de vb 2 - Seleccionar desde el explorador de proyectos de visual basic, el objeto DataReport1 para poder acceder a las propiedades 3 - Desde la ventana de propiedades, establecer en la propiedad DataSource el origen de los datos para el reporte, es decir el obteto DataEnvironment1 , y desde la propiedad DataMember el comando anteriormente creado , es decir el objeto Command1

4 - Ir al men Ventana de Visual basic, y seleccionar la opcin Cascada para poder visualizar las dos ventanas al mismo tiempo, es decir la ventana del entorno de datos o DataEnvironment y la ventana del DataReport

3 - Ahora arrastrar algunos campos desde la ventana DataEnvironment hacia la seccin Detalle del Datareport , por ejemplo : el campo IdEmpleado, Nombre, Apellido y el campo FechaContratacin

(6) - cdigo del formulario para desplegar el reporte


Por ltimo, ir al formulario y pegar el siguiente cdigo fuente , que permite pasar la fecha como parmetro al objeto Command1

Texto planoImprimir

1.
2.

Option Explicit Private Sub Command1_Click() On Error GoTo error_reporte ' cargar el DataEnvironment Load DataEnvironment1 With DataEnvironment1 ' si el comando est abierto .. cerrarlo If .rsCommand1.State <> 0 Then .rsCommand1.Close End If ' pasar al comando la fecha como parmetro .Command1 DTPicker1.Value End With With DataReport1 ' refrescar y hacer visible el reporte .Refresh

3.
4.

5.
6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.

24. 25. 26. 27. 28. 29.

If .Visible = False Then .Show End If End With 'Excepciones ''''''''''''''''''''''''''''''''''''''''''' Exit Sub error_reporte: MsgBox Err.Description, vbCritical, "Nmero de error: " & Err.Number End Sub

30. 31. 32.


33.

34. 35.

Para comprobar el resultado del informe, seleccionar las siguientes fechas en el control DtPicker:

01/01/95 01/01/94 01/01/93 01/01/92

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 Frameconsume 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

Descripcin Una expresin de objeto que da como resultado un control TabStrip . Un entero o una cadena que identifica de forma nica a un miembro de una coleccin de objetos. El entero es el valor de la propiedad Index del objeto Tab deseado, mientras que la cadena es el valor de la propiedad Key del objeto Tab deseado.

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

Descripcin Una expresin de objeto que da como resultado una coleccin Tabs . Opcional. Un entero que especifica la posicin en la que desea insertar el objeto Tab . Si no especifica ningn ndice, el objeto Tab se agrega al final de la coleccin Tabs . Opcional. Una cadena nica que identifica al objeto Tab . Utilice la clave para recuperar una ficha especfica. Es equivalente a establecer la propiedad Key del nuevo objeto Tab despus de haberlo agregado a la coleccin Tabs . Opcional. La cadena que aparece en el objeto Tab . Es equivalente a establecer la propiedadCaption del nuevo objeto Tab despus de haberlo agregado a la coleccin Tabs . Opcional. El ndice de una imagen en un control ImageList asociado. Esta imagen se muestra en la ficha. Es equivalente a establecer la propiedad Image del nuevo objeto Tab despus de haberlo agregado a la coleccin Tabs .

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 de fichas en el control TabStrip. TabStrip1.MultiRow = TRUE

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 y el rea interna tiene un borde tridimensional alrededor. 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 otabFlatButton .

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 aNone ). 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

También podría gustarte