Bienvenido: ( Identificarse | Registrarse )      
Foros de Trucos Windows
 
Closed TopicStart new topicStart Poll

Outline · [ Estándar ] · Lineal+

> Codigo Ascii en .NET

rgrm_s
post Mar 11 2008, 06:43 AM
Publicado: #1


Newbie
*

Grupo: Members
Mensajes: 19
Registrado: 25-February 08
Miembro nº: 225.139



A ver explico mi problema: Para empezar estoy trabajando en Visual Basic .Net, y necesito validar cuando apreto la tecla ENTER en un control TEXTBOX, en VB 6.0 era sencillo pero aca no se cual es la equivalencia, pues la siguiente linea no es valida aca en .Net:

IF KeyAscii=13 THEN
..........
.........., etc
END If

agradesco de antemano su ayuda


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Mar 11 2008, 08:02 AM
Publicado: #2


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.665
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
Miembro nº: 93.342



Asi es, si verificas bien, el evento Keypress en VB.NET ya no tiene la variable KeyAscii, ahora tienes dos opciones:
1.-Crear tu propia funcion con el parametro KeyAscii (dificil)
2.-Usar funciones nativas de .NET que nos haran la vida mas facil (facil)

Te explico la segunda:
Si miras bien el evento KeyPress, veras un parametro interesante:
ByVal e As System.Windows.Forms.KeyPressEventArgs

¿Que significa?, en pocas palabras estas declarando a e como argumento(s) del metodo, la forma de usarlo es mas simple de lo que te imaginas (aunque no tan simple como en VB6 biggrin20jy.gif )

e tiene el metodo KeyChar, que hace practicamente lo mismo que KeyAscii, solo que en vez de recibir el valor ascii de la tecla pulsada, recibe directamente un valor definido en las bibliotecas .NET, ¿Como obtenemos ese valor?, Muy sencillo, gracias a la expresion keys, la cual contiene almacenadas todas las teclas habidas y por haber para manejarlas a nuestro antojo.

Bueno si toda esa palabreria no te ha dejado nada claro, este simple ejemplo te ayudará mas laugh.gif
CODE

   Private Sub txtStatus_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtStatus.KeyPress
       If e.KeyChar = Convert.ToChar(Keys.A) Then
           MsgBox("Has presionado la tecla A")
       ElseIf e.KeyChar = Convert.ToChar(Keys.Return) Then
           MsgBox("Has presionado la tecla Enter")
       End If
   End Sub


bye1.gif


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rgrm_s
post Mar 11 2008, 04:17 PM
Publicado: #3


Newbie
*

Grupo: Members
Mensajes: 19
Registrado: 25-February 08
Miembro nº: 225.139



Muchas gracias Rob1104, fue de mucha ayuda, por cierto, aprovechando que se nota que tu si sabes de .Net, tengo otra preguntita

CODE

Sub Limpiar()
Dim control
       For Each control In Me.Controls ( en VB6.0 era "FOR Each control IN Form1.controls")
           If TypeOf control Is TextBox Then
               control.text = ""
           End If
       Next
End Sub


esta subrutina en VB6.0 me servia para limpiar los cuadros de texto, pero en .Net , si tengo activado option stric me sale el siguiente mensaje:

"Option Stric no permite el enlace en tiempo de ejecucion", esto me sale en la linea donde dice control.text="" ....¿Por que me sale ese error?

pero si deshabilito option strict, el progreama ejecuta normal y me permite limpiar los cuadros de textos[/CODE]


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Mar 11 2008, 07:22 PM
Publicado: #4


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.665
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
Miembro nº: 93.342



Si funciona, solo que tienes que ser mas especifico (gran ventaja, agradecelo a Option Strict, si quieres ser buen programador no lo desactives y dejalo en on biggrin20jy.gif )
Asi deberia funcionarte:
CODE

Dim ctrl As Control
For Each ctrl In Me.Controls
   If TypeOf ctrl Is TextBox Then ctrl.Text = ""
Next


Saludos
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rgrm_s
post Mar 13 2008, 03:08 PM
Publicado: #5


Newbie
*

Grupo: Members
Mensajes: 19
Registrado: 25-February 08
Miembro nº: 225.139



Muchas gracias Rob1104
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Mar 14 2008, 04:02 PM
Publicado: #6


Xbox Live... The best thing ever happened around videogames
Group Icon

Grupo: Moderadores
Mensajes: 1.665
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, Mexico
Miembro nº: 93.342



Un placer ayudarte thumbsup.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
Closed TopicTopic OptionsStart new topic

Collapse

> Topicos similares

DUDA SOBRE CODIGO JAVASCRIPT PLAYKATE 76 2 Sep 18 2008, 03:21 AM
By: Lord MinDokan
Error de Detención Código 0x1000008E neomix08 185 1 Aug 31 2008, 07:57 AM
By: RedPhoenix
Problema con el codigo 39 lasangre77 182 2 Aug 14 2008, 03:40 AM
By: lasangre77
codigo stop bluescreen magic-alonso 197 1 Jul 11 2008, 02:47 PM
By: Kbite