¿Hola a todos como andan?
No se si la estructura está bien pero intente de muchas formas y la unica que me dejaba depurarlo era con: If e.KeyCode = ComboBox1.Text Then pero luego me tiraba error.
La forma correcta para una DETERMINADA TECLA ES: If e.KeyCode = Keys.B Then.
Lo que quería hacer sería esto: If e.KeyCode = Keys.(ComboBox1.Text) Then cosa que la tecla que elija del ComboBox "complete" el codigo.
ACA LES DEJO UNA IMAGEN DEL CODIGO COMPLETO Y LOS PROBLEMAS:
http://postimg.org/image/4d9en2yst
If e.KeyCode = Asc("L") Then
MsgBox("Ha presionado ""L""")
End If
En tu caso:
If e.KeyCode = Asc(ComboBox1.Text) Then
Dim n$ = Chr(e.KeyCode)
MsgBox("Ha presionado " & n$)
End If
GRACIAS OKIK!!!
La verdad que me fue muy útil ;D. Ahora tengo otro problema el cual es que al añadir F's o numeros del NumPad o teclas como Space o RControl no se sale el MsgBox.
Al ComboBox los añadi asi:
ComboBox1.Items.Add(Keys.F1)
ComboBox1.Items.Add(Keys.NumPad0)
ComboBox1.Items.Add(Keys.Space)
Gracias Nuevamente :D !!!!
Cita de: M1LL3R en 18 Febrero 2015, 22:43 PM
GRACIAS OKIK!!!
La verdad que me fue muy útil ;D. Ahora tengo otro problema el cual es que al añadir F's o numeros del NumPad o teclas como Space o RControl no se sale el MsgBox.
Al ComboBox los añadi asi:
ComboBox1.Items.Add(Keys.F1)
ComboBox1.Items.Add(Keys.NumPad0)
ComboBox1.Items.Add(Keys.Space)
Gracias Nuevamente :D !!!!
Dim N As String
N = ""
If e.KeyCode = Keys.F1 Or e.KeyCode = Keys.NumPad0 Or e.KeyCode = Keys.Space Then
Select e.KeyCode
Case 112 : N = "F1"
Case 96 : N = "NupPad0"
Case 32 : N = "Espacio"
End Select
MsgBox("Ha presionado " & N)
End If
http://127.0.0.1:47873/help/1-5212/ms.help?product=VS&productVersion=100&method=f1&query=System.Windows.Forms.KeyEventArgs.Modifiers&locale=es-ES&category=DevLang%3aVB%00TargetFrameworkMoniker%3a.NETFramework,Version%3Dv4.0 (http://127.0.0.1:47873/help/1-5212/ms.help?product=VS&productVersion=100&method=f1&query=System.Windows.Forms.KeyEventArgs.Modifiers&locale=es-ES&category=DevLang%3aVB%00TargetFrameworkMoniker%3a.NETFramework,Version%3Dv4.0)
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox1.Items.Add(Keys.F1)
ComboBox1.Items.Add(Keys.NumPad0)
ComboBox1.Items.Add(Keys.Space)
ComboBox1.Items.Add(Keys.ControlKey)
End Sub
Private Sub ComboBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ComboBox1.KeyUp
Dim N As String
N = ""
If e.KeyCode = Keys.F1 Or e.KeyCode = Keys.NumPad0 Or e.KeyCode = Keys.Space Or e.KeyCode = Keys.ControlKey Then
Select Case e.KeyCode
Case 112 : N = "F1"
Case 96 : N = "NumPad0"
Case 32 : N = "Space"
Case 17 : N = "ControlKey"
End Select
MsgBox("Ha presionado " & N)
End If
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Select Case ComboBox1.Text
Case "F1"
MsgBox("Keycode: " & Keys.F1)
Case "NumPad0"
MsgBox("Keycode: " & Keys.NumPad0)
Case ("Space")
MsgBox("Keycode: " & Keys.Space)
Case "ControlKey"
MsgBox("Keycode: " & Keys.ControlKey)
End Select
End Sub
End Class
Nuevamente muchas gracias por tus respuestas y tu atención!!
El código está bien y funciona pero no es lo que buscaba :(.
El error que tenia arriba es que cuando elijo del ComboBox la "B" y en el TextBox1 presiono la B sale el MsgBox pero ahora si selecciono algún F o Space o NumPad0 no salia el MsgBox.
Con esta parte de tu código lo solucioné:
Dim N As String
N = ""
If e.KeyCode = Keys.F1 Or e.KeyCode = Keys.NumPad0 Or e.KeyCode = Keys.Space Then
Select e.KeyCode
Case 112 : N = "F1"
Case 96 : N = "NupPad0"
Case 32 : N = "Espacio"
End Select
MsgBox("Ha presionado " & N)
End If
Pero el problema ahora es que sin seleccionar nada o seleccionando cualquier tecla del ComboBox, al apretar F1, NumPad0 o Space me sale el MsgBox y solo tendría que aparecer el MsgBox si la tecla seleccionada del ComboBox es apretada en el TextBox.
Es medio confuso pero intente ser lo mas claro posible. Si no entendés decime que trato de ser mas claro.
He intentado con este código pero no logre hacerlo funcionar:
Private Sub Textbox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
Dim N As String
N = ""
If ComboBox1.Text = e.KeyCode = Keys.F1 Or ComboBox1.Text = e.KeyCode = Keys.NumPad0 Or ComboBox1.Text = e.KeyCode = Keys.Space Then
Select Case e.KeyCode
Case 112 : N = "F1"
Case 96 : N = "NupPad0"
Case 32 : N = "Espacio"
End Select
MsgBox("Ha presionado " & N)
End If
End Sub
;DSinceramente, no tengo claro lo que quieres hacer. ¿Para qué pones en un combobox F1, NumPad0, etc?
¿Qué quieres, que cuando el usuario le de al F1, y esté usando el combo se selecciona F1 en la lista?¿o que?, No entiendo. :-[
Lógicamente, si quieres que dentro de un Textbox se produzca un evento tendrás que poner lo mismo que en los ejemplos pero en el Evento del Textbox no en el del ComboBox, no se si me explico. Yo he puesto esos ejemplos, que son eso, ejemplos para ver como va, pero la programación es flexible y cada cual luego lo moldea y lo aplica como crea conveniente.
Para este código necesitas un Texbox y un ComboBox. Si en el ComboBox seleccionas "F1" cuando teclees 'F1' en el textBox aparecerá un mensaje. Como ves, he usado los mismos parámetros pero usado de forma distinta. Una vez tienes la base, luego lo aplicas como te de la gana. No se si es lo que buscas, espero que te sirva. ::)
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ComboBox1.Items.Add(Keys.F1)
ComboBox1.Items.Add(Keys.NumPad0)
ComboBox1.Items.Add(Keys.Space)
ComboBox1.Items.Add(Keys.ControlKey)
ComboBox1.SelectedIndex = 0
TextBox1.Focus()
End Sub
Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
Dim N As String
N = ""
Select Case e.KeyCode
Case 112 : N = "F1"
Case 96 : N = "NumPad0"
Case 32 : N = "Space"
Case 17 : N = "ControlKey"
End Select
If ComboBox1.Text = N Then
MsgBox("Ha presionado " & N)
End If
End Sub
End Class
Finalmente me entendiste jajaja :D!
El codigo funciona correctamente ;-) ;-) ;-) !!!
Muchas Gracias okik!!