Autor Tema: Pegar en Textbox validado  (Leído 4509 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Pegar en Textbox validado
« en: Octubre 17, 2013, 02:12:43 pm »
Me he enrrollado con este tema.

Tengo este codigo
Código: (VB) [Seleccionar]
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
Me encuentras en YAcosta.com

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Pegar en Textbox validado
« Respuesta #1 en: Octubre 17, 2013, 02:57:52 pm »
Hola, amigo Yván.
Probá con este código (tené en cuenta que va en el evento KeyDown):
Código: (VB) [Seleccionar]
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

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Pegar en Textbox validado
« Respuesta #2 en: Octubre 17, 2013, 04:02:52 pm »
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.
Me encuentras en YAcosta.com

cristian_19a

  • Kilobyte
  • **
  • Mensajes: 80
  • Reputación: +28/-3
    • Ver Perfil
Re:Pegar en Textbox validado
« Respuesta #3 en: Octubre 17, 2013, 11:26:08 pm »
Hola
Creo que también así funciona :D
Código: (VB) [Seleccionar]
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
« última modificación: Octubre 17, 2013, 11:31:30 pm por cristian_19a »

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Pegar en Textbox validado
« Respuesta #4 en: Octubre 17, 2013, 11:41:54 pm »
¡Muy bueno! No tenía idea de eso.
Gracias.

Jerónimo

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Pegar en Textbox validado
« Respuesta #5 en: Octubre 19, 2013, 12:31:13 am »
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 :)