Masked Edit (Control)

El control Masked Edit proporciona una entrada de datos restringida así como un resultado de datos con formato. Este control proporciona pistas visuales acerca del tipo de datos que se escribe o se muestra. El icono que lo representa en el cuadro de herramientas es el siguiente:

Nombre de archivo

MSMASK32.OCX

Nombre de clase

MaskEdBox

Comentarios

El control Masked Edit generalmente se comporta como un cuadro de texto estándar con mejoras para realizar entradas de datos con máscara y salidas con formato. Si no utiliza una máscara de entrada, el control Masked Edit se comporta como un cuadro de texto estándar, excepto por su capacidad de realizar intercambio dinámico de datos (DDE, dynamic data exchange).

Si define una máscara de entrada mediante la propiedad Mask, cada posición de un carácter del control Masked Edit se asigna a un marcador de posición de un tipo específico o a un carácter literal. Los caracteres literales, o literales, dan una indicación visual acerca del tipo de datos que está utilizando. Por ejemplo, los paréntesis que rodean el código de área de un número de teléfono son literales: (206).

Si intenta especificar un carácter que entra en conflicto con la máscara de entrada, el control generará un evento ValidationError. La máscara de entrada le impide especificar caracteres no válidos en el control.

El control Masked Edit tiene tres propiedades dependientes: DataChanged, DataField y DataSource. Esto significa que se puede vincular a un control de datos y mostrar valores de campo para el registro actual del recordset. El control Masked Edit puede también escribir valores de resultado al recordset.

Cuando se lee el valor del campo al que se hace referencia mediante la propiedad DataField, si es posible se convierte a una cadena para la propiedad Text. Si el conjunto de registros es actualizable, la cadena se convierte al tipo de datos del campo.

Para borrar la propiedad Text cuando tiene definida una máscara, primero necesita establecer la propiedad Mask a una cadena vacía y después hacer lo mismo con la propiedad Text:

MaskedEdit1.Mask = ""
MaskedEdit1.Text = ""

Cuando define una máscara de entrada, el control Masked Edit se comporta de forma diferente a un cuadro de texto estándar. El punto de inserción salta automáticamente los literales a medida que se mueve o se escriben datos.

Cuando inserta o elimina un carácter, todos los caracteres no literales que hay a la derecha del punto de inserción se desplazan, según sea necesario. Si el desplazamiento de estos caracteres produce un error de validación, se impide la inserción o eliminación y se desencadena un evento ValidationError.

Suponga que la propiedad Mask está definida como "?###" y el valor actual de la propiedad Text es "A12". Si intenta insertar la letra "B" delante de la letra "A", la "A" se desplazaría a la derecha. Como el segundo valor de la máscara de entrada requiere un número, la letra "A" haría que el control generara un evento ValidationError.

El control Masked Edit también valida los valores de la propiedad Text en tiempo de ejecución. Si establece la propiedad Text de modo que entre en conflicto con la máscara de entrada, el control generará un error en tiempo de ejecución.

Puede seleccionar texto del mismo modo que en un cuadro de texto estándar. Cuando el texto seleccionado se elimina, el control intenta desplazar los caracteres restantes a la derecha de la selección. Sin embargo, se elimina cualquier carácter restante que pueda causar un error de validación durante este desplazamiento y no se genera ningún evento ValidationError.

Normalmente, cuando una selección del control Masked Edit se copia al Portapapeles, la selección entera (incluyendo los literales) se transfiere al Portapapeles. Puede usar la propiedad ClipMode para transferir al Portapapeles únicamente los datos introducidos por el usuario: los caracteres literales que forman parte de la máscara de entrada no se copian.


No se encuentra el tema

No se halló el tema correspondiente. A continuación enumeramos algunas posibles razones y sus soluciones:

  • El archivo (.chm) que contiene el tema de destino no se encuentra en la ubicación esperada.

    Solución: vuelva a ejecutar la instalación de la Biblioteca MSDN.

  • El archivo (.chm) que contiene el tema actual o el de destino no está actualizado y el vínculo ya no es válido.

    Solución: instale la última versión de la Biblioteca MSDN.

  • El CD de la Biblioteca MSDN no está en la unidad de CD-ROM.

    Solución: inserte el CD en la unidad.


ValidationError (Evento)

Tiene lugar cuando el control Masked Edit recibe una entrada no válida, como se determina en la máscara de entrada.

Sintaxis

Private Sub ctlname_ValidationError(InvalidText As String; StartPosition As Integer)

Comentarios

InvalidText es el valor de la propiedad Text, incluyendo el carácter no válido. Esto significa que cualquier carácter marcador de posición y literal no válido utilizado en la máscara de entrada se incluye en InvalidText.

StartPosition es la posición en InvalidText en la que se produce el error (el primer carácter no válido).


Constantes del control Masked Edit

Constantes de Appearance

Constante | Valor | Descripción
mskFlat | 0 | Sin relieve. Pinta controles y formularios sin efectos visuales.
mskThreeD | 1 | (Predeterminado) 3D. Pinta controles con efectos tridimensionales.

Constantes de BorderStyle

Constante | Valor | Descripción
vbBSNone | 0 | Sin borde.
vbFixedSingle | 1 | Simple fijo.

Constantes de ClipBoard

Constante | Valor | Descripción
mskCFRTF | &HFFFFBF01 | Formato de texto enriquecido (archivo .rtf).
mskCFText | 1 | Texto (archivo .txt).
mskCFBitmap | 2 | Mapa de bits (archivo .bmp).
mskCFMetafile | 3 | Metarchivo (archivo .wmf).
mskCFDIB | 8 | Mapa de bits independiente de dispositivo.
mskCFPalette | 9 | Paleta de colores.
mskCFEMetafile | 14 | Metarchivo extendido (archivo .emf).
mskCFFiles | 15 | Lista de nombres de archivo.

Constantes de ClipMode

Constante | Valor | Descripción
mskIncludeLiterals | 0 | Incluir literales para cortar o copiar.
mskExcludeLiterals | 1 | Excluir literales para cortar o copiar.

Constantes de DragOver

Constante | Valor | Descripción
mskEnter | 0 | El control de origen se arrastró dentro del destino.
mskLeave | 1 | El control de origen se arrastró fuera del destino.
mskOver | 2 | El control de origen se arrastró de una posición a otra dentro del destino.

Constantes de Error

Constante | Valor | Descripción
mskDataObjectLocked | 672 | La lista de formatos de DataObject no se puede borrar o expandir fuera del evento OLEStartDrag.
mskExpectedAnArgument | 673 | Se esperaba al menos un argumento.
mskFormatNotByteArray | 675 | Los formatos de arrastrar y colocar OLE no intrínsecos que se usan con SetData necesitan datos en una matriz de Byte. GetData puede devolver más bytes que los proporcionados a SetData.
mskGetNotSupported | 394 | La propiedad es de sólo escritura.
mskInvalidObjectUse | 425 | Uso no válido del objeto.
mskInvalidProcedureCall | 5 | Llamada a procedimiento no válida.
mskInvalidPropertyValue | 380 | Valor de propiedad no válido.
mskRecursiveOleDrag | 674 | Invocación recursiva ilegal de arrastrar y colocar OLE.
mskSetNotSupported | 383 | La propiedad es de sólo lectura.
mskWrongClipboardFormat | 461 | El formato especificado no coincide con el formato de los datos.

Constantes de MousePointer

Constante | Valor | Descripción
mskDefault | 0 | Predeterminado.
mskArrow | 1 | Flecha.
mskCross | 2 | Cruz.
mskIbeam | 3 | Forma de I.
mskIcon | 4 | Icono.
mskSize | 5 | Tamaño.
mskSizeNESW | 6 | Puntero del mouse de tamaño NE SO.
mskSizeNS | 7 | Puntero del mouse de tamaño N S.
mskSizeNWSE | 8 | Puntero del mouse de tamaño NO SE.
mskSizeEW | 9 | Puntero del mouse de tamaño O E.
mskUpArrow | 10 | Flecha arriba.
mskHourglass | 11 | Reloj de arena.
mskNoDrop | 12 | Sin colocar.
mskArrowHourglass | 13 | Flecha y reloj de arena.
mskArrowQuestion | 14 | Flecha y signo de interrogación.
mskSizeAll | 15 | Ajustar tamaño de todo.
mskCustom | 99 | Icono personalizado especificado por la propiedad MouseIcon.

Constantes de OLEDrag

Constante | Valor | Descripción
mskOLEDragManual | 0 | Arrastrar y colocar OLE se inicializa sólo mediante programación.
mskOLEDragAutomatic | 1 | Arrastrar y colocar OLE se inicializa cuando el usuario arrastre ‘fuera’ del control o mediante programación.

Constantes de OLEDrop

Constante | Valor | Descripción
mskOLEDropNone | 0 | No permite operaciones OLE de arrastrar y colocar.
mskOLEDropManual | 1 | Acepta operaciones de arrastrar y colocar sólo mediante programación.
mskOLEDropAutomatic | 2 | Acepta operaciones OLE de arrastrar y colocar sin programación.

Constantes de OLEDropEffect

Constante | Valor | Descripción
mskOLEDropEffectNone | 0 | No se ha realizado ninguna operación OLE de arrastrar y colocar.
mskOLEDropEffectCopy | 1 | Máscara que indica que se ha realizado una copia.
mskOLEDropEffectMove | 2 | Máscara que indica que se ha realizado un movimiento.
mskOLEDropEffectScroll | &H80000000 | Máscara que indica que se ha desplazado la ventana de destino de colocación.


AllowPrompt (Propiedad)

Determina si el carácter de petición de datos es un carácter de entrada válido.

Sintaxis

[formulario.]MaskedEdit.AllowPrompt [= {True | False}]

Comentarios

Los valores de la propiedad AllowPrompt son los siguientes:

Valor | Descripción
False | (Predeterminado) El carácter de petición de datos no es un carácter de entrada válido. Se desencadenará un evento ValidationError si escribe el carácter de petición de datos.
True | El carácter de petición de datos es un carácter de entrada válido.

Por ejemplo, suponga que ha definido un carácter de petición de datos como 0 y desea que el control Masked Edit acepte cinco dígitos entre 0 y 9. Especifique una máscara como #####. Si la propiedad AllowPrompt es False y escribe 0, ocurrirá un evento ValidationError. Si AllowPrompt está establecida a True, podrá escribir 0 como un valor de entrada válido.

Tipo de dato

Integer (Booleano)


AutoTab (Propiedad)

Determina si el siguiente control en el orden de tabulación recibe el enfoque tan pronto como la propiedad Text del control Masked Edit se llena con datos válidos. La propiedad Mask determina si son válidos los valores de la propiedad Text.

Sintaxis

[formulario.]MaskedEdit.AutoTab[ = {True | False}]

Comentarios

La tabulación automática tiene lugar sólo si se introducen en el control todos los caracteres definidos por la propiedad Mask, los caracteres son válidos y la propiedad AutoTab está establecida a True.

Valor | Descripción
False | (Predeterminado) AutoTab no está activada. Tiene lugar un evento ValidationError cuando introduce más caracteres de los que están definidos en la máscara de entrada.
True | AutoTab está activada. Cuando introduce todos los caracteres definidos por la máscara de entrada, el enfoque pasa al siguiente control en la secuencia de tabulación y este control trata todos los caracteres introducidos posteriormente.

El control Masked Edit se considera lleno cuando introduce el último carácter válido en el control, con independencia de la posición en la que se encuentre el carácter en la máscara de entrada. Esta propiedad no tiene ningún efecto si la propiedad Mask tiene asignada la cadena vacía ("").

Tipo de dato

Integer (Booleano)


ClipMode (Propiedad)

Determina si se incluyen o se excluyen los caracteres literales en la máscara de entrada cuando se ejecutan los comandos Cortar o Copiar.

Sintaxis

[formulario.]MaskedEdit.ClipMode [ = valor%]

Comentarios

La siguiente tabla muestra los valores de la propiedad ClipMode para el control MaskedEdit.

Valor | Descripción
mskIncludeLiterals (0) | (Predeterminado) Se incluyen literales en un comando Cortar o Copiar.
mskExcludeLiterals (1) | Se excluyen literales en un comando Cortar o Copiar.

Esta propiedad no tiene ningún efecto si la propiedad Mask tiene asignada la cadena vacía ("").

Tipo de dato

Integer (Enumerado)


ClipText (Propiedad)

Devuelve el texto del control Masked Edit, excluyendo los caracteres literales de la máscara de entrada. Esta propiedad no está disponible en tiempo de diseño y es de sólo lectura en tiempo de ejecución.

Sintaxis

[formulario.]MaskedEdit.ClipText

Comentarios

Esta propiedad actúa del mismo modo que la propiedad SelText cuando la propiedad Mask tiene asignada la cadena vacía ("").

Tipo de dato

String


Format (Propiedad, control Masked Edit)

Especifica el formato para presentar e imprimir números, fechas, horas y texto.

Sintaxis

[formulario.]MaskedEdit.Format [ = formatopos$; formatoneg$; formatocero$; formatonulo$]

Parámetro | Descripción
formatopos$ | Expresión utilizada para presentar valores positivos.
formatoneg$ | Expresión utilizada para presentar valores negativos.
formatocero$ | Expresión utilizada para presentar valores cero.
formatonulo$ | Expresión utilizada para presentar valores nulos o vacíos.

Comentarios

La propiedad Format define las expresiones de formato utilizadas para presentar el contenido del control. Puede usar las mismas expresiones de formato, como se definen en la función Format de Visual Basic, con la excepción de que los formatos con nombres ("On/Off") no se pueden usar.

Esta propiedad puede tener de uno a cuatro parámetros separados por signos de punto y coma. Si no se especifica uno de estos parámetros, se usará el formato especificado por el primero. Si aparecen múltiples parámetros, deberá usarse el número de separadores apropiado. Por ejemplo, para especificar formatopos$ y formatonulo$, utilice la sintaxis

[formulario.]MaskedEdit.Format = formatopos$;;; formatonulo$

La siguiente tabla muestra ejemplos de formatos estándar que puede usar.

Tipo de dato | Valor | Descripción
Número | (Predeterminado) Cadena vacía | Formato numérico general. Se presenta tal y como se ha introducido.
Número | $#,##0.00;($#,##0.00) | Formato monetario. Utiliza separador de miles; presenta los números negativos entre paréntesis.
Número | 0 | Formato de número fijo. Presenta al menos un dígito.
Número | #,##0 | Formato de comas. Utiliza comas como separador de miles.
Número | 0% | Formato de porcentaje. Multiplica el valor por 100 y agrega un signo de porcentaje.
Número | 0.00E+00 | Formato científico. Utiliza la notación científica estándar.
Fecha y hora | (Predeterminado) c | Formato general de fecha y hora. Presenta la fecha, la hora o ambos.
Fecha y hora | dddddd | Formato de fecha largo. Igual que el valor Fecha larga en la sección Internacional del Panel de control de Microsoft Windows. Ejemplo: Martes, Mayo 26, 1992.
Fecha y hora | dd-mmm-yy | Formato de fecha medio. Ejemplo: 26-May-92.
Fecha y hora | ddddd | Formato de fecha corto. Igual que el valor establecido en la sección Internacional del Panel de control de Microsoft Windows. Ejemplo: 5/26/92.
Fecha y hora | ttttt | Formato de hora largo. Igual que el valor Hora en la sección Internacional del Panel de control de Microsoft Windows. Ejemplo: 05:36:17 A.M.
Fecha y hora | hh:mm AM/PM | Formato de hora medio. Ejemplo: 05:36 A.M.
Fecha y hora | hh:mm | Formato de hora corto. Ejemplo: 05:36.

Tipo de dato

String


FormattedText (Propiedad)

La propiedad FormattedText devuelve la cadena mostrada en el control Masked Edit cuando el control no tiene el enfoque. Esta propiedad no está disponible en tiempo de diseño y es de sólo lectura en tiempo de ejecución.

Sintaxis

[formulario.]MaskedEdit.FormattedText

Comentarios

Si la propiedad Format está asignada a la cadena vacía (""), esta propiedad es idéntica a la propiedad Text, excepto en que es de sólo lectura. Si la propiedad HideSelection está establecida a False, el control no presenta el texto con formato cuando no tiene el enfoque. Sin embargo, el texto con formato está aún disponible a través de esta propiedad.

Tipo de dato

String


Mask (Propiedad)

Determina la máscara de entrada para el control.

Sintaxis

[formulario.]MaskedEdit.Mask [ = cadena$]

Comentarios

Puede definir las máscaras de entrada tanto en tiempo de diseño como en tiempo de ejecución. Sin embargo, los siguientes son ejemplos de máscaras de entrada estándar que puede usar en tiempo de diseño. El control puede distinguir entre caracteres numéricos y alfabéticos para la validación, pero no puede comprobar que el contenido sea válido, como que el mes o la hora del día sean correctos.

Máscara | Descripción
Cadena nula | (Predeterminado) Sin máscara. Actúa como un cuadro de texto estándar.
##-???-## | Fecha media (EE.UU.). Ejemplo: 20-May-92
##-##-## | Fecha corta (EE.UU.). Ejemplo: 05-20-92
##:## ?? | Hora media. Ejemplo: 05:36 AM
##:## | Hora corta. Ejemplo 17:23

La máscara de entrada puede consistir en los caracteres siguientes.

Carácter de máscara | Descripción
# | Marcador de posición de dígito.
. | Marcador de posición decimal. El carácter real utilizado es el especificado como marcador de posición decimal en la configuración regional. Este carácter se trata como un literal para las máscaras.
, | Separador de miles. El carácter real utilizado es el especificado como separador de miles en la configuración regional. Este carácter se trata como un literal para las máscaras.
: | Separador de hora. El carácter real utilizado es el especificado como separador de hora en la configuración regional. Este carácter se trata como un literal para las máscaras.
/ | Separador de fecha. El carácter real utilizado es el especificado como separador de fecha en la configuración regional. Este carácter se trata como un literal para las máscaras.
\ | Trata el siguiente carácter de la cadena de máscara como un literal. Esto le permite incluir los caracteres '#', '&', 'A' y '?' en la máscara. Este carácter se trata como un literal para las máscaras.
& | Marcador de posición de carácter. Los valores válidos para este marcador de posición son los caracteres ANSI incluidos en los intervalos siguientes: 32-126 y 128-255.
> | Convierte todos los caracteres siguientes a mayúsculas.
< | Convierte todos los caracteres siguientes a minúsculas.
A | Marcador de posición de carácter alfanumérico (requerido). Por ejemplo: a – z, A – Z, ó 0 – 9.
a | Marcador de posición de carácter alfanumérico (opcional).
9 | Marcador de posición de carácter numérico (opcional). Por ejemplo: 0 – 9.
C | Marcador de posición de carácter o espacio (opcional). Funciona como el marcador de posición &, proporcionando compatibilidad con Microsoft Access.
? | Marcador de posición de letras. Por ejemplo: a – z o A – Z.
Literal | Todos los demás símbolos se muestran como literales; es decir, como ellos mismos.

Cuando el valor de la propiedad Mask es una cadena vacía (""), el control se comporta como un cuadro de texto estándar. Cuando se define una máscara de entrada, aparecen signos de subrayado por debajo de todos los marcadores de posición de la máscara. Solamente puede reemplazar un marcador de posición con un carácter que sea del mismo tipo que el especificado en la máscara de entrada. Si especifica un carácter no válido, el control Masked Edit rechaza el carácter y genera un evento ValidationError.

Nota Cuando define una máscara de entrada para el control Masked Edit y tabula a otro control, se genera un evento ValidationError si hay algún carácter no válido en el control Masked Edit.

Tipo de dato

String


MaxLength (Propiedad)

Establece o devuelve la longitud máxima del control Masked Edit.

Sintaxis

[formulario.]MaskedEdit.MaxLength [ = valor%]

Comentarios

El control Masked Edit puede tener un máximo de 64 caracteres (el intervalo válido para esta propiedad es de 1 a 64). El valor predeterminado es 64 caracteres, incluyendo caracteres literales en la máscara de entrada.

Si el usuario escribe caracteres más allá de la longitud máxima especificada, el control genera un aviso acústico.

Tipo de dato

Integer


PromptChar (Propiedad)

Establece o devuelve el carácter utilizado para solicitar datos al usuario.

Sintaxis

[formulario.]MaskedEdit.PromptChar [ = char$]

Comentarios

El carácter de subrayado "_" es el valor de carácter predeterminado para la propiedad. La propiedad PromptChar sólo se puede establecer a un carácter.

Utilice la propiedad PromptInclude para especificar si los caracteres para solicitar los datos están contenidos en la propiedad Text.

Utilice la propiedad AllowPrompt para comprobar si el usuario ha escrito un carácter de petición de datos.

Tipo de dato

String


PromptInclude (Propiedad)

Especifica si los caracteres para solicitar datos están contenidos en el valor de la propiedad Text. Utilice la propiedad PromptChar para modificar el valor del carácter de petición de datos.

Sintaxis

[formulario.]MaskedEdit.PromptInclude [ = { True | False }]

Comentarios

La siguiente tabla muestra los valores de la propiedad PromptInclude para el control Masked Edit.

Valor | Descripción
False | El valor de la propiedad Text no contiene ningún carácter de petición de datos.
True | (Predeterminado) El valor de la propiedad Text contiene caracteres de petición de datos, si existen.

Si el control Masked Edit está enlazado a un control de datos, la propiedad PromptInclude afecta a la manera en que el control de datos lee la propiedad Text dependiente. Si PromptInclude es False, el control de datos pasa por alto cualesquiera caracteres literales o de petición de datos de la propiedad Text. De este modo, el valor que el control de datos recupera del control Masked Edit es equivalente al valor de la propiedad ClipText.

Si PromptInclude es True, el control de datos utiliza el valor de la propiedad Text como el valor de datos que se va a almacenar.

Tipo de dato

Integer (Booleano)


SelText (Propiedad, control Masked Edit)

Establece o devuelve el texto contenido en el control.

Sintaxis

[formulario.]MaskedEdit.SelText[ = cadena$]

Comentarios

Si no hay definida ninguna máscara de entrada para el control Masked Edit, la propiedad SelText se comporta como la propiedad SelText estándar de un control TextBox.

Si hay definida una máscara de entrada y hay texto seleccionado en el control Masked Edit, la propiedad SelText devuelve una cadena de texto. Dependiendo del valor de la propiedad ClipMode, se devuelven algunos caracteres del texto seleccionado. Si ClipMode está activada, los caracteres literales no aparecen en la cadena devuelta.

Cuando la propiedad SelText está activada, el control Masked Edit se comporta como si el texto se hubiera pegado desde el Portapapeles. Esto significa que cada carácter de cadena$ se introduce en el control como si el usuario lo hubiera escrito realmente.

Tipo de dato

String


Text (Propiedad, control Masked Edit)

Establece o devuelve el texto contenido en el control. Esta propiedad no está disponible en tiempo de diseño.

Sintaxis

[formulario.]MaskedEdit.Text[ = cadena$]

Comentarios

Esta propiedad establece o recupera el texto del control Masked Edit, incluyendo los caracteres literales y los signos de subrayado que forman parte de la máscara de entrada. Cuando se establece la propiedad Text, el valor cadena$ debe coincidir exactamente con los caracteres de la máscara de entrada, incluyendo los valores literales y los signos de subrayado.

Nota El valor de la propiedad ClipMode no tiene efecto sobre el valor de la propiedad Text.

La propiedad SelText proporciona el modo más sencillo de establecer el texto del control Masked Edit.

Tipo de dato

Variant