Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: YAcosta en Octubre 17, 2013, 02:12:43 pm
-
Me he enrrollado con este tema.
Tengo este codigo
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 8, 32 To 57, 65 To 90, 209, 165, 193
Case 97 To 122, 164, 241
KeyAscii = Asc(UCase(Chr(KeyAscii)))
Case Else
KeyAscii = 0
End Select
End Sub
Pero quiero que a pesar de el pueda hacerse Ctrl V y pegar un texto, si me pega un texto en minusculas no importa lo convertire a mayuscula en otro proceso pero al menos quiero meter el dato. No ubico como capturar el Ctrl y conjugarlo con el V (o "v") para que pegue.
Saludos
-
Hola, amigo Yván.
Probá con este código (tené en cuenta que va en el evento KeyDown):
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 2 And KeyCode = 86 Then
MsgBox "Se presionó Ctrl+v"
End If
End Sub
Un abrazo.
Jerónimo
-
Perfecto Jerónimo, ese era el juego de teclas, funcionó, por si alguien mas lo necesita una vez pasada la validación usamos:
Text1.SelText = Clipboard.GetText() 'para pegar lo que tenemos en memoria
Muchas gracias doc.
-
Hola
Creo que también así funciona :D
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbMenuAccelCtrlC Then
KeyAscii = 0
MsgBox "Control + C"
ElseIf KeyAscii = vbMenuAccelCtrlV Then
KeyAscii = 0
MsgBox "Control + V"
ElseIf KeyAscii = vbMenuAccelCtrlX Then
KeyAscii = 0
MsgBox "Control + X"
ElseIf KeyAscii = vbMenuAccelCtrlZ Then
KeyAscii = 0
MsgBox "Control + Z"
End If
End Sub
-
¡Muy bueno! No tenía idea de eso.
Gracias.
Jerónimo
-
Ojo que eso solo funciona para cuando se presionan las teclas. Pero si viene alguien y hace "Click derecho -> Pegar" te arruina la aplicacion...
Lo mejor es subclasear el textbox (cSubClass, fijensen los proyectos de Leandro) y obtener los mensajes WM_PASTE y listo :)