Sección de tutoriales y manuales vb
índice - Contenido
Con este control se puede permitir la entrada de datos personalizada, por ejemplo para ingresar fechas, horas, texto, crear la entrada de datos con un formato específico. El control en su aspecto es muy similar a un control textBox.
Para añadir el MaskEdBox a un proyecto se debe hacerlo desde el menú Proyecto > Componentes y seleccionar el control Microsoft Masked Edit Control 6.0 de la lista de Activex
A continuación siguen algunos ejemplos:
El siguiente ejemplo, indica en la propiedad Format el valor: "dd/mm/yyyy"
En la propiedad Mask el valor "##/##/####"
La vista en tiempo de ejecución para poder ingresar la fecha sería por ejemplo:
Esto hará que solo se puedan ingresar una fecha, pero no valida que la misma sea correcta. Es decir podemos ingresar el valor 66/99/9999 tranquilamente.
Para ello se puede utilizar el evento Validate del control, y dentro del mismo comprobar mediante la función Isdate de visual basic si la misma es correcta. Si la fecha es erronea, se establece el valor del parámetro Cancel en True, De este modo el foco del control quedará en el MaskEdBox. También opcionalmente podemos mostrar un mensaje o lo que sea necesario dentro del evento validate
Colocar un MaskEdBox llamado MaskEdBox1, y el siguiente código en el formulario:
Private Sub Form_Load() With MaskEdBox1 'Indicamos al MaskEdBox la máscara a utilizar y el formato .Format = "dd/mm/yyyy" .Mask = "##/##/####" End With End Sub Private Sub MaskEdBox1_Validate(Cancel As Boolean) If IsDate(MaskEdBox1.FormattedText) = False Then 'Opcional: podemos mostrar un mensaje MsgBox " La Fecha no es válida ", vbCritical, " Error al ingresar la fecha " Cancel = True End If End Sub
Si quisieramos hacer que la fecha se vea en este formato dd-mm-yyyy
el valor de Mask sería el siguiente:
El_MaskedBox.Mask = "##-##-####"
Este ejemplo es igual al anterior, pero es para indicar un valor de tipo Hora AM/PM, es decir si ingresamos por ejemplo 99:88, dará error ya que en el Validate se comprueba que sea una hora válida ( también utilizando la función IsDate dentro del evento Validate del control )
La vista en tiempo de ejecución del control mostrando la valor de tipo hora sería :
Código en el formulario:
Private Sub Form_Load() With MaskEdBox1 'Indicamos al MaskEdBox la máscara a utilizar y el formato .Format = "hh:mm AM/PM" .Mask = "##:##" End With End Sub Private Sub MaskEdBox1_Validate(Cancel As Boolean) 'Comprueba si la Hora es válida If IsDate(MaskEdBox1.FormattedText) = False Then 'Opcional: podemos mostrar un mensaje MsgBox "Fecha errónea", vbCritical, "Validación de ....." Cancel = True End If End Sub
Desde esta ventana, se pueden especificar las propiedades mas importantes, como la máscara, Formato, propiedades para cambiar la apariencia etc...
Asi como los formatos se pueden indicar en tiempo de diseño desde dicha ventana, como también en tiempo de ejecución mediante código, el control ya tiene predefinidas algunas para las fechas, horas, números etc.. desde la lista desplegable
Nota: en la Msdn podés acceder a la descripción sobre los caracteres de máscara y su significado, por ejemplo el caracernumeral # es para los dígitos, el caracter ">" para convertir a mayúsculas, el signo "?" para letras etc..
Asi como en un textBox s ise desea limpiar el contenido del control se asigna una cadena nula, en este control es necesario anteriormente establecer la propiedad Mask con una cadena vacía y luego limpiar el control, si no se producirá un error.
Por ejemplo:
'Limpia el contenido del control
El_MaskedEdBox.Mask = ""
El_MaskedEdBox.Text = ""
..es decir que al hacer esto, además de borrar el contenido dejar el Mask en blanco , el mismo actuará similar a como lo hace un control textBox, ya que no tiene ninguna máscara asignada
Para que pueda mostrar valores de una base de datos, se deben utilizar las propiedades DataField y DataSource. Por ejemplo:
Set El_MaskedEdBox.DataSource = El_Recordset El_MaskedEdBox.DataField = " EL Campo "
Acá hay un simple ejemplo que enlaza el control MaskedEdBox a un control Adodc. El campo que visualiza es el campo Fechaalta de la tabla usuarios. Este campo se asigna a la propiedad DataField del mismo
Por ejemplo si quisieramos hacer que el control MaskedBox permita la entrada solo de letras mayúsculas, se debe indicar en la propiedad Mask , el carcacter > . Y la cantidad de caracteres a usar.
Por ejemplo lo siguiente permite la entrada de cuatro letras mayúsculas
MaskEdBox.Mask = ">AAAA"
Para permitir solo el ingreso de Minúsculas usar el caracter < al comienzo de la máscara . Por ejemplo lo siguiente solo permite el ingreso de 6 caracteres en minúsculas
MaskEdBox.Mask = "<AAAAAA"
Nota : en los dos casos anteriores solo admite cualquier tipo de caracter pero no admite espacios.
Para admitir espacios, en ves de colocar en la máscara el caracter a como Mayúscula, hacerlo con la letra minúscula.
Por ejemplo, eso permite la entrada de cinco caracteres minúsculas y también pernmite la entrada de espacios
MaskEdBox.Mask = "<aaaaa"
En este enlace se encuentra en formato .chm la referencia de ayuda sobre el control Masked Edit (Control).
Contiene los temas :
Buscar en Recursos vb
Recursos visual basic - Buscar - Privacidad - Copyright © 2005 - 2009 - www.recursosvisualbasic.com.ar