Bueno, para texto con formato tienes otro control (el MaskEdit), pero no me
gusta como funciona.
De todas formas, es muy sencillo "modificar" el TextBox para que sólo
"trague" mayúsculas, números, etc. Tan solo tienes que poner código en los
eventos que se producen cuando se modifica el texto: KeyPress y Change.
Necesitas los dos, porque sino dará errores:
- Sólo código en KeyPress: se puede introducir texto de otras formas (con
el portapapeles, desde el código).
- Sólo código en Change: al pulsar una tecla, se vería como se "pulsa" la
minúscula y luego se hace mayúscula.
El código sería algo así como (vale cualquiera de los que te han enviado):
Public Sub MiTexto_KeyPress(KeyAsii as Integer)
KeyAscii = Asc(Ucase$(Chr$(KeyAscii)))
End Sub
Public Sub MiTexto_Change()
Static bLStYa as Boolean 'Para evitar recursión
Dim sLTexto as String 'Para acelerar
If Not bLStYa Then
bLStYa = True
sLTexto = UCase$(MiTexto.Text)
'Para acelerar y evitar "parpadeos" del control
If MiTexto.Text <> sLTexto Then MiTexto.Text = sLTexto
bLStYa = False
End If
End Sub
Con esto bastará. De todas formas, la mejor forma de hacerlo sería no
poniendo el código en el evento, sino haciendo una función en un módulo
estándar (o mejor, en uno de clase) y llamarlo desde las ventanas precisas.
También es muy sencillo hacerse un control .OCX basado en esto. Así sólo
escribirás el código una vez.
Saludos
Luis Sanz
HOSPITAL REINA SOFIA DE TUDELA
31500 TUDELA
NAVARRA
Teléfono: 948-827500
Fax: 948- 825906
E-Mail: hrst@ctv.es
----------
> De: Alonso Jiménez Méndez <alonsoj.sgt@ceh.caan.es>
> A: 'Lista de VB' <vb-esp@ccc.uba.ar>
> Asunto: (VB-ESP) TextBox MAYUSCULAS contestado.
> Fecha: martes 26 de mayo de 1998 4:33
>
> Gracias por vuestras respuestas. De todas formas una solución así ya la
había pensado, y a la vista de vuestras respuestas comienzo a deducir que
el control TextBox es bastante poco funcional o versatil. Lo normal es que
tuviese una propiedad en la que indicar el formato de introducción del
texto.
> De todas formas gracias.