Foros del Web » Programación para mayores de 30 ;) » .NET »

Control de caracteres inválidos en TextBox -_VB.NET_-

Estas en el tema de Control de caracteres inválidos en TextBox -_VB.NET_- en el foro de .NET en Foros del Web. Hola a todos!! Tengo que realizar un control en la introducciñon de caracteres en los TextBox de mi app windows. He encontrado una solución pero, ...
  #1 (permalink)  
Antiguo 02/07/2004, 02:29
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Control de caracteres inválidos en TextBox -_VB.NET_-

Hola a todos!!
Tengo que realizar un control en la introducciñon de caracteres en los TextBox de mi app windows. He encontrado una solución pero, me falta por hacer que al introducir el carácter inválido (En este caso el código ascii 39), se borre ese carácter únicamente. No quiero que se borre completamente el texto del textbox, sólo el carácter inválido, y es justamente lo que no consigo.
Os pongo aqui el código que he escrito:
Código:
    Private Sub txtNombre_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNombre.KeyPress
        Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
        If KeyAscii = 13 Then  ' Enter
            Me.PcbNom_Click(sender, e)
            If Me.ListBox1.Items.Count > 0 Then
                Me.ListBox1.Focus()
                Me.ListBox1.SelectedIndex = 0
            End If
        End If
        If KeyAscii = 39 Then

        End If
    End Sub
PD: Se admiten otro tipo de soluciones, de esta forma yo hago un control posterior a la introducción de cada carácter, si se puede configurar el textbox para que no se puedan introduzcan ciertos caracteres, decirme cómo se hace, sería lo más óptimo y limpio.

Graaaaaaaaaciasss!!!!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET

Última edición por GeRuNdIo; 02/07/2004 a las 02:34
  #2 (permalink)  
Antiguo 02/07/2004, 07:47
 
Fecha de Ingreso: marzo-2004
Mensajes: 19
Antigüedad: 20 años, 1 mes
Puntos: 0
Sonrisa respuesta

hola lobo tienes que poner keyascii=0 para que no lo mueste el caracter

Private Sub txtNombre_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNombre.KeyPress
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
If KeyAscii = 13 Then ' Enter
Me.PcbNom_Click(sender, e)
If Me.ListBox1.Items.Count > 0 Then
Me.ListBox1.Focus()
Me.ListBox1.SelectedIndex = 0
End If
End If
If KeyAscii = 39 Then
keyascii=0
End If
End Sub
__________________
@ Robert Wong Villar @
@ Lima - Perù @
  #3 (permalink)  
Antiguo 03/07/2004, 09:32
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
GeRuNdIo:

Yo lo haría así:

Cita:
Dim KeyAscii As Short = CShort(Asc(e.KeyChar))
If KeyAscii = 39 Then
SendKeys.Send("{BS}")
End If
Con ello le envía un backspace para que borre automaticamente el caracter 39 y no pierdas el foco.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 05/07/2004, 01:34
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Holas!!
Gracias a ambos por el interés (RootK a ti siempre te estare agradecido makina!)
Sólo comentar que he probado las dos soluciones y me ha funcionado la solución de RootK perfectamente. Lo siento Wolfsofta1 tu solución en VB.NET no funciona, creo que la solución que me diste es para VB6, ya que creo que es la solución que encontré cuando programaba en VB6. De todas formas muchas gracias también a ti.
Saludos!!!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:21.