Ayuda, el maula anda suelto!
Publicado por Facundo (58 intervenciones) el 30/06/2014 06:01:47
Hola gente,
recurro a ustedes por algo que no puedo terminar de creer:
Tengo en un Form, 12 elementos Label.
Mi idea es que al presionar cada una de las teclas de función (de 1 al 12), vaya cambiando el color de las etiquetas (Label), para lo cual el código es el que sigue:
La sorpresa viene ahora:
Apretando las teclas de función F1 a F9, F11 y F12 el código funciona sin problemas.
Cuando apreto F10 una vez es como si se detuviera la intercepción de teclas presionadas; solamente tras apretar F10 nuevamente, el programa vuelve a funcionar.
Una cosa que descarté es que F10 pusiera en False a Form1.KeyPreview; ése no es el caso.
Agradeceré al que pueda explicar este comportamiento.
recurro a ustedes por algo que no puedo terminar de creer:
Tengo en un Form, 12 elementos Label.
Mi idea es que al presionar cada una de las teclas de función (de 1 al 12), vaya cambiando el color de las etiquetas (Label), para lo cual el código es el que sigue:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 112
If Label1.BackColor = vbRed Then Label1.BackColor = vbGreen Else Label1.BackColor = vbRed
Case 113
If Label2.BackColor = vbRed Then Label2.BackColor = vbGreen Else Label2.BackColor = vbRed
Case 114
If Label3.BackColor = vbRed Then Label3.BackColor = vbGreen Else Label3.BackColor = vbRed
Case 115
If Label4.BackColor = vbRed Then Label4.BackColor = vbGreen Else Label4.BackColor = vbRed
Case 116
If Label5.BackColor = vbRed Then Label5.BackColor = vbGreen Else Label5.BackColor = vbRed
Case 117
If Label6.BackColor = vbRed Then Label6.BackColor = vbGreen Else Label6.BackColor = vbRed
Case 118
If Label7.BackColor = vbRed Then Label7.BackColor = vbGreen Else Label7.BackColor = vbRed
Case 119
If Label8.BackColor = vbRed Then Label8.BackColor = vbGreen Else Label8.BackColor = vbRed
Case 120
If Label9.BackColor = vbRed Then Label9.BackColor = vbGreen Else Label9.BackColor = vbRed
Case 121
If Label10.BackColor = vbRed Then Label10.BackColor = vbGreen Else Label10.BackColor = vbRed
Case 122
If Label11.BackColor = vbRed Then Label11.BackColor = vbGreen Else Label11.BackColor = vbRed
Case 123
If Label12.BackColor = vbRed Then Label12.BackColor = vbGreen Else Label12.BackColor = vbRed
Print Form1.KeyPreview
End Select
End Sub
La sorpresa viene ahora:
Apretando las teclas de función F1 a F9, F11 y F12 el código funciona sin problemas.
Cuando apreto F10 una vez es como si se detuviera la intercepción de teclas presionadas; solamente tras apretar F10 nuevamente, el programa vuelve a funcionar.
Una cosa que descarté es que F10 pusiera en False a Form1.KeyPreview; ése no es el caso.
Agradeceré al que pueda explicar este comportamiento.
Valora esta pregunta
0