Hace poco he estado pensando en hacer un programa en Visual Basic 6.0 en el que vaya mostrando en pantalla completa una pregunta con sus tres alternativas. El usuario solo puede contestar usando las teclas 0, 1, 2, 3. La tecla 0 sirve para pasar a la siguiente pregunta y dejar la pregunta actual para contestarla después.
La idea que tuve fue crear un arreglo de Strings en el que almacene las preguntas. Otro arreglo de varias filas y tres columnas de String que almacena las 3 alternativas correspondiente a cada pregunta. También un Arreglo de Enteros que almacene la respuesta correcta correspondiente a cada pregunta.
Mi problema surge a partir de ahora. En el formulario en el que van a ir apareciendo las preguntas he insertado etiquetas, y pensé que mediante la propiedad Caption iba a ir mostrando las preguntas correspondientes a cada pregunta. También mi programa tenía un cuadrito picture box que se ponía rojo si la pregunta era mala y verde si la pregunta era contestada correctamente.
Ahora, he usado una estructura repetitiva for de la siguiente manera:
For i = 1 To 40
Pregunta.Caption = i '// Numero de pregunta
Enunciado.Caption = Preg1(i) '// El enunciado de la pregunta
Alter1.Caption = Resp1(i, 1) '// La alternativa 1, 2, 3
Alter2.Caption = Resp1(i, 2)
Alter3.Caption = Resp1(i, 3)
If Not (KeyCode >= 48 And KeyCode <= 51) Then '// solo debe reconocer 0, 1, 2, 3
KeyCode = 0
Else
Respuesta = KeyCode - 48
If Respuesta = R1(i) Then
Picture2(i).BackColor = vbGreen
Else
Picture2(i).BackColor = vbRed
End If
End If
Mi duda es que no sé en qué evento poner dicho código, pues lo intenté en Keypress y vi que no aparecieron las preguntas una por una sino todas al porrazo y me mandó directamente la pregunta 40. Lo que quisiera es que el programa por cada pregunta vaya esperando a que presione una tecla y luego recien comparar con la respuesta y pintar el cuadrito según sea correcto o incorrecto. Lo de pintar el cuadrito no es problema, solo quiero saber en qué evento debo poner el código.