0% encontró este documento útil (0 votos)
543 vistas17 páginas

Propiedades y Eventos de TextBox

Este documento describe las propiedades y eventos del control TextBox en Visual Basic. Algunas propiedades clave incluyen Text (el texto mostrado), Name (el nombre del control), Multiline (permite texto en múltiples líneas), y Locked (bloquea la edición). Los eventos incluyen MouseMove, MouseDown, Change y Click. El TextBox se usa principalmente para ingresar o mostrar texto.

Cargado por

tunradot
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
543 vistas17 páginas

Propiedades y Eventos de TextBox

Este documento describe las propiedades y eventos del control TextBox en Visual Basic. Algunas propiedades clave incluyen Text (el texto mostrado), Name (el nombre del control), Multiline (permite texto en múltiples líneas), y Locked (bloquea la edición). Los eventos incluyen MouseMove, MouseDown, Change y Click. El TextBox se usa principalmente para ingresar o mostrar texto.

Cargado por

tunradot
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Propiedades TextBox

Cuando estemos editando un TextBox y queremos las propiedades de esta, solo


pulsemos (botón derecho y con esto obtenemos el menú contextual, luego
seleccionar propiedades; con esta acción obtendremos el cuadro de propiedades
del TextBox y desde aquí podemos editar sus generalidades. A continuación
presentaremos las propiedades más resaltantes:
TEXT: en esta propiedad se indica el texto que aparecerá en el control (en el
TextBox). El usuario puede introducir cualquier texto el cual es tratado durante la
ejecución.
NAME: propiedad importante que ya viene con un nombre por defecto (Text1),
este nombre controla al TextBox cuando se utilice en la arquitectura del VBA
(código). Dato importante es que en un mismo formulario no puede haber 2
controles con el mismo nombre.
MULTILINE: Para que funcione esta propiedad debe estar con el valor true. Nos
permite como su nombre lo dice, trabajar con varias líneas de texto en el TextBox.
TEXTALIGN: su importancia radica en que nos permite alinear el texto del control
(TextBox) en la izquierda, centro o derecha.
LOCKED: sirve para bloquear el control (TextBox), es decir si esta activada con
valor “true”, entonces  se bloquea el control automática no permitiendo introducir ni
modificar el texto que contenga.
BACKCOLOR: nos indica el color de fondo.
FORECOLOR: nos indica el color de letra.
FONT: manifiesta el tipo y tamaño de letra.

Eventos (TextBox):
Son todas las acciones que se pueden realizar con el TextBox: click, doble click,
movimiento del mouse. Estas acciones se les pueden relacionar o asociar códigos
para que se ejecute al producir el evento.
MOUSEMOVE: se mueve el mouse por encima del TextBox.
MOUSEDOWN: se ejecuta al pulsar cualquier botón del mouse.
CHANGE: se ejecuta al cambiar el contenido del TextBox.
CLICK: se ejecuta al hacer click con el botón izquierdo del mouse sobre el
TextBox.
DBLCLICK: se ejecuta al hacer doble click con él con el botón izquierdo del
mouse sobre el TextBox.

El control TextBox o Caja de texto se utiliza para Ingresar y/o visualizar Texto ( es


un control de entrada de datos )

 
 

Si en nuestros programas no vamos a introducir Texto, me refiero a solo mostrarlo,


valores etc..., es preferible y mas lógico utilizar un control Label en cambio de un
control TextBox , ya que consume menos recursos

La propiedad principal de este control se llama Text. Mediante ella podemos


asignarle un texto ya sea en tiempo de diseño o tiempo de ejecución al control. Si
es en tiempo de diseño, debemos seleccionar el TextBox e ir a la ventana de
propiedades y seleccionar Text. Dentro de ella podemos escribir el texto a ser
mostrado. Si es en tiempo de ejecución debemos escribir el nombre de el
TextBox que queremos y al presionar el punto ".", vb despliega la lista de
propiedades y métodos del TextBox, y ahí seleccionamos Text

Por ejemplo si quiero mostrar un texto en un control llamado Text1 se haría de esta
forma:

Private Sub Form_Load()

Text1.Text = "Un texto cualquiera"

End Sub
 

Si quisiera mostrar el contenido de un control Label llamado Label1 en un control


llamado text1 se haría así:

Private Sub Form_Load()

Text1.Text = Label1.Caption

End Sub

Nota , no es necesario escribir la propiedad Text seguida del nombre del control,
ya que la propiedad Text es la propiedad por defecto, y Vb se daría
automáticamente cuenta que al no poner ninguna propiedad la asuma como tal, por
ejemplo esto es válido:

Private Sub Form_Load()

Text1 = "Un texto cualquiera"

End Sub

Esto de las propiedades por defecto lo tienen la mayoría de los controles, pero cada
control tiene la suya, por ejemplo la propiedad default de un control Label es
Caption, por lo que no es necesario escribirla, y Visual Basic no daría error:

Private Sub Form_Load()

Label1 = "Hola"

End Sub

Para un control Picture, la propiedad Picture es la que está establecida por


defecto, y esto tampoco daría error y cargaría una imagen perfectamente en el
control sin indicar explícitamente la propiedad.

Private Sub Form_Load()

Picture1 = LoadPicture("la ruta de una imagen")


End Sub

 
Propiedad Multiline

La propiedad Multiline o multilinea se utiliza para poder mostrar los saltos de carro


o saltos de línea y que el texto se vea en varias y no todo en un única línea. Los
valores que posee son True que está activada y en False quiere decir que está
deshabilitada. Por defecto cuando añadimos un TextBox, la propiedad está en False,
osea que tenemos que indicarle nosotros a vb, ya sea desde la ventana de
propiedades poniéndola en true. Una cosa importante es que esto no lo podemos
cambiar en tiempo de ejecución mediante código, si o si hay que establecerla desde
la ventana de propiedades, ya que es una propiedad de solo lectura.

Propiedad PasswordChar

Esta propiedad tiene la función de ocultar el verdadero contenido del


TextBox por el caracter que le indiquemos, por ejemplo los TextBox de ingresos de
contraseña, donde el texto se oculta pero no se pierde, solo impide visualizarlo:

Nota : para establecer el caracter a mostrar solo debemos indicarlo en


la propiedad PasswordChar, pero solo funciona cuando la propiedad
Multiline del Text está en False.

Propiedad ScrollBars

Esta propiedad permite que el TextBox tenga o no tenga barras de Scroll cuando


el texto sea superior a las dimensiones de la caja de texto. Los valores que puede
tener son: 0 indica que el textBox no mostrará Barras de desplazamiento, en
1 Solo barra Horizontal, 2 Solo barra Vertical y 3 ambas barras de
desplazamiento. En esta imagen se ve un TextBox con la propiedad Scrollbars
en 2, solo Vertical

 
 

Propiedad Locked

Esta propiedad lo que hace es impedir que se pueda escribir en el TextBox,


bloqueando la entrada de datos. Esta propiedad puede tener el Valor True o False,
habilitado para el primero y False para el segundo. Por defecto está deshabilitada,
es decir en False

Propiedad Maxlength

La propiedad MaxLength se usa para limitar la cantidad de caracteres que se


podrán ingresar. Por ejemplo si en el TextBox tuviesemos el texto "Domingo" y
hacemos esto:

Private Sub Command4_Click()


Text1.Text = "Domingo"
Text1.MaxLength = 3
End Sub

El texto "Domingo" se podrá visualizar pero si intentamos escribir en la caja de


texto, no se podrá ingresar mas de 3 caracteres. Es decir la propiedad recibe un
número que identifica la longitud máxima permitida de letras a ingresar.

Propiedad SelStart y SelLength

La primera lo que hace es devolver o establecee el punto inicial del texto


seleccionado. en cambio SelLength devuelve o establece el número de caracteres
seleccionados.

El siguiente ejemplo utiliza estas dos propiedades, en conjunto con la propiedad


Len de visual basic, para que al persionar la tecla Ctrl+A, se seleccione todo el
contenido del TextBox

 
 

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 1 Then
Text1.SelStart = 0
'Selecciona Todo el contenido de la caja de texto
Text1.SelLength = Len(Text1.Text)
End If
End Sub 

Algunos ejemplos del Uso del control TextBox

Supongamos que quisieramos mostrar el contenido de un Text1 en un Text2,


cuando presionamos un Command1, haríamos asi:

Private Sub Command1_Click()


'Copiamos el texto de Text1 en el Text2
Text2 = Text1
End Sub

 
Si quisieramos cambiar el color de fondo (propiedad Backcolor) del TextBox para
que sea igual al color de fondo del formulario haríamos asi:

Private Sub Command1_Click()


'Le asignamos el mismo color al textbox que el que tiene el
formulario _
utilizando la propiedad Backcolor
Text1.BackColor = Me.BackColor
End Sub

Este simple ejemplo lo que hace es cuando se escribe en el Text1,


automáticamente se imprime el mismo texto en un Text2. Para esto usamos el
evento Change que significa cambio, es decir se ejecutará cada vez que el text1
cambie el contenido.

Agregar 2 Text, text1 y Text2, pegar lo siguiente y luego escribir un texto en el


Text1.

Private Sub Text1_Change()


'Le establecemos el contenido de Text1 en el control Text2
Text2 = Text1
End Sub

Este ejemplo lo que hace es cambiarle el color al fondo del control text en negro, el
color de la fuente en verde, el tamaño de la fuente, establecerla en negrita, y luego
le asigna un texto "hola mundo".

Colocar un Command1 y un Text1

 
 

Private Sub Command1_Click()


With Text1

.ForeColor = vbGreen
.BackColor = vbBlack
.FontSize = 12
.FontBold = True
.Text = " Hola Mundo"

End With
End Sub

Hacer que un textBox admita solo números y algunos otros caracteres


indicados

El siguiente ejemplo muestra como hacer , comprobando en el eventos KeyPress de


un textbox, el valor del parámetro Keyascii, para que solo admita números, la
coma, el punto y la tecla de retroceso. Cualquier otro valor que no sea estos, el
mismo retornará el valor 0.

Colocar un Text1 y el siguiente código en el formulario:

Option Explicit

Private Sub Text1_KeyPress(KeyAscii As Integer)


KeyAscii = Verificar_Tecla(KeyAscii)
End Sub

Function Verificar_Tecla(Tecla_Presionada)

Dim Teclas As String


'Acepta todos los números, la tecla Backspace, _
la tecla Enter, la coma y el punto

Teclas = "1234567890.," & Chr(vbKeyBack)

If InStr(1, Teclas, Chr(Tecla_Presionada)) Then

Verificar_Tecla = Tecla_Presionada
Else
' Si no es ninguna de las indicadas retorna 0
Verificar_Tecla = 0
End If

End Function

Esta función también puede ser utilizada en otros controles de entrada de datos,
como por ejemplo los ComboBox, y la ventaja de utilizarlo, es que si tenemos
muchos textbox o controles a los cuales deseamos verificar las teclas presionadas,
no tenemos que escribir y repetir código en todos ellos, solo asignando al valor
KeyAscii el valor retornado por la fuinción, para que el mismo acepte o no dichas
teclas

Nota: también hay una función de visual basicllamada IsNumeric, para poder
determinar si un valor es un número

Ejemplo para cargar el contenido de un archivo de texto en un TextBox


Multiline

Este simple ejemplo carga en un control textBox el contenido de un archivo


seleccionado de tipo txt. El control tiene la propiedad Multiline en True y la
propiedad ScrollBar en Both.
Nota: en este enlace hay una descripción básica de las funciones de visual basic
para el tratamiento de archivos, leer, guardar etc...

Colocar en un formulario un control Commondialog , un control textBox y un control


Command1:

Nota: al control textBox en la propiedadMultiline colocarle true y también


establecerle los ScrollBar

Código fuente en el formulario:

Private Sub Command1_Click()


With CommonDialog1

.DialogTitle = " Seleccionar archivo"


.Filter = "Archivos txt|*.txt"
' abre el cuadro de diálogo para seleccionar el txt
.ShowOpen

If .FileName = "" Then Exit Sub

'Carga el archivo en el control


Cargar_Txt .FileName
End With
End Sub

Private Sub Form_Load()


Command1.Caption = " Abrir archivo txt"
End Sub

Sub Cargar_Txt(path As String)


Dim linea As String
If path = vbNullString Then Exit Sub

Text1 = ""

Open path For Input As #1

While Not EOF(1)


'Lee la linea del archivo
Line Input #1, linea
'La carga en el textbox
Text1 = Text1 & linea
Wend
'Cierra el archivo abierto
Close

End Sub
 

Redimensionar un TextBox al ancho y alto del formulario

Este ejemplo simple lo que hace es que al redimensionar el formulario, o


maximizarlo, el ancho y alto del control text, se adapte al ancho y alto del la
ventana. Para ello el código debe estar ubicado en el evento Resize del formulario,
y para redimensionar el textbox ( o cualquier otro control) se utiliza el método
Move

Ejemplo:
Private Sub Form_Resize()

'Primer y segundo parámetro es el valor Left y Top

'Parámetro 3 y 4, el ancho y alto del text _


que en este caso es el ancho y alto del formulario

Text1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight


End Sub

Cambiar color de borde

El textbox no tiene ninguna propiedad para cambiar el color de borde . El siguiente


ejemplo muestra una forma simple de como simular esto utilizando controles
Shape, como muestra la siguiente imagen donde los textbox son parecidos a los de
estilo de windows xp

En el ejemplo, se recorren todos los controles del formulario mediante un bucle For
each. Luego, se van creando los demás controles Shape en tiempo de ejecución,
uno para cada textbox , usando el método Load que permite crear los controles en
tiempo de ejecución a partir de uno que está agregado en el formulario formando
un array de controles

Controles

Colocar en el formulario, un control Shape. Al control Shape especificarle en la


propiedad Index el valor 0 pra formar el array de shape
Luego agregar algunos textbox en el formulario

Código fuente en el formulario

' Posiciona el shape junto al textbox para simular el borde


Sub Aplicar_Borde(Shape As Object, color_Borde As Long)

' Variable para recorrer todos los controles del formulario


Dim el_Control As Object

'Recorre todos los controles


For Each el_Control In Me

' .. si el control es un textbox


If TypeOf el_Control Is TextBox Then
Dim i As Integer

'Si el Textbox está dentro de un contenedor, _


como un frame o picturebox, coloca el Shape _
dentro del mismo contenedor
Set Shape(i).Container = el_Control.Container

'Propiedades para el shape


Shape(i).BackStyle = 0 ' Fondo transparente
Shape(i).BorderStyle = 1 ' Borde sólido
Shape(i).BorderWidth = 1 ' 0 Grosor del borde

' Ancho, alto, pos x y po y del shape


Shape(i).Top = el_Control.Top - 10
Shape(i).Left = el_Control.Left - 10
Shape(i).Width = el_Control.Width + 30
Shape(i).Height = el_Control.Height + 30

' Estilo flat para el extbox


el_Control.Appearance = 0
' Le quitamos le borde al textbox
el_Control.BorderStyle = 0
' color del borde del shape
Shape(i).BorderColor = color_Borde
' Lo hacemos visible
Shape(i).Visible = True

i = i + 1
' Crea un shape en forma dinámica
Load Shape(i)

End If
Next
End Sub

Private Sub Form_Load()


Call Aplicar_Borde(Shape1, &H8000000D)
End Sub
 

Nota. en este enlace hay un ejemplo para crear un listbox con borde personalizado
también usando un control shape

Pasar el foco entre Textbox al presionar la tecla enter

Este ejemplo muestra una forma de poder, al presionar la tecla enter, pasarle el
foco al siguiente textbox. Como en el ejemplo se utiliza la función SendKeys para
enviar la pulsación de la tecla Tab, el control que reciba el enfoque lo determinará
la propiedad TabIndex

Agregar un arreglo de controles textbox, por ejemplo Text1(0), Text1(1), Text1(2)


etc...
 

Código fuente en el formulario

Sub PasarFoco(KeyCode As Integer)


' si es la tecla enter ...

If KeyCode = 13 Then
' envía la pulsación de tecla Tab y pasa el foco _
a la siguiente caja de texto
SendKeys "{TAB}"
End If
End Sub

Private Sub Form_Load()

Dim i As Integer

' recorre la matriz de textbox


For i = 0 To Text1.Count - 1
' le especifica la propiedad tabIndex
Text1(i).TabIndex = i + 1
Next

End Sub

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)


' anvia como parámetro el valor del código de la tacla
Call PasarFoco(KeyAscii)
End Sub 

Borrar todos los textbox de un formulario

Si queremos eliminar el contenido de todas las cajas de texto de un formulario,


podemos utilizar un bocle For Each y el operador Type Of

Ejemplo:
La rutina LimpiarTextBox, recibe como parámetro el formulario, por ejemplo para
limpiar todo el contenido de todas las cajas de texto que hay en el el formulario
actual, se ejecutaría la rutina de la siguiente forma:

Call LimpiarTextBox(Me)

Colocar en el formulario, un CommandButton y varios controles TextBox

Código fuente en el Form

Option Explicit

' recibe como argumento el formulario


''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Sub LimpiarTextBox(frm As Form)
' recorre todos los controles que hay en el formulario
For Each Control In frm.Controls
' verifica que el control es de tipo TextBox
If TypeOf Control Is TextBox Then
'... Si es un Textbox, entonces lo limpia
Control.Text = ""
End If
Next
End Sub

' botón que limpia todos los textbox


'''''''''''''''''''''''''''''''''''''
Private Sub Command1_Click()
Call LimpiarTextBox(Me)
End Sub 

Este sería un ejemplo de 3 situaciones:


-Si el control TextBox1 queda vacío no pasa nada.
- Si el texto ingresado tiene un largo < 5 caracteres... Cancel = true
hará que no se pueda salir forzando el ingreso de valores correctos
- Si el texto ingresado es LISTO se ejecuta tu macro
Private Sub TextBox1_Exit(ByVal Cancel As
MSForms.ReturnBoolean)
If TextBox1.Value = "" Then Exit Sub
If Len(TextBox1) < 5 Then Cancel = True
If TextBox1 = "LISTO" Then Call MiMacro
End Sub

También podría gustarte