Hola, para mi esto es una manera de complicarse la vida. Cada maestrillo tiene su librillo pero imagina lo siguiente:
Un formulario llamado
Teclado, donde tenemos el teclado dibujado. Cada una de las teclas es un Command de una Matriz en este sencillo ejemplo le he llamado a los botones Tecla y sería algo similar a esto:
[A] [B] [C] [<][Salir]
[1] [2] [3] [Aceptar]
El número de los indices en este caso no tiene importancia.
Este es el código dentro del formulario:
Código vb:
Ver originalOption Explicit
Dim CampoTexto As TextBox
Public Sub MiTeclado(Texto As TextBox, Titulo As String)
Set CampoTexto = Texto
Me.Caption = Titulo
Me.Show vbModal
End Sub
Private Sub tecla_Click(Index As Integer)
Select Case tecla(Index).Caption
Case "Salir"
CampoTexto.Text = ""
Unload Me
Case "Aceptar"
Unload Me
Case "<"
If CampoTexto.Text <> "" Then CampoTexto.Text = Left$(CampoTexto.Text, Len(CampoTexto.Text) - 1)
Case Else
CampoTexto.Text = CampoTexto.Text & tecla(Index).Caption
End Select
End Sub
Supongamos ahora que queremos completar en el FormularioX un campo de Texto llamado Text1 y que la pregunta sea "Nombre"
Teclado.MiTeclado Text1, "Nombre"
Mas sencillo imposible, Ahora depende del gusto de cada uno la forma que le de al Teclado, y la versatilidad del mismo.
Puedes utilizar el index para saber que teclas se pueden convertir a Mayusculas y cuales no, por ejemplo:
Index 0 = a
Index 1 = b
Index 2 = c
Index 3 = d
con un simple bucle conviertes todas las teclas a mayúsculas o minúsculas
For Indice = 0 To 3
Tecla(Indice).Caption = Ucase(Tecla(Indice).Caption) 'Mayúsculas
Next
For Indice = 0 To 3
Tecla(Indice).Caption = Lcase(Tecla(Indice).Caption) 'Minúsculas
Next
En fin, la imaginacion al poder.
Saludos y feliz año a todos