Visual Basic.NET - keypress con set focus

   
Vista:

keypress con set focus

Publicado por beatriz (4 intervenciones) el 31/08/2008 05:03:28
hola
estoy programndo un crucigrama en visual 6.0 y para pasar de una casilla a otra he programado la tecla ENTER , además he programado que casilla debe tomar el foco despues de presionar la tecla enter.
Pero resulta que al rellenare el crucigrama existen letras que pertenecen a dos palabras como programo para que la tecla enter desplace a una u otra casilla casilla.
trate de hacerlo asi, pero no me funcionó
Private Sub Text5_KeyPress(KeyAscii As Integer)
If (KeyAscii = 13) Then
KeyAscii = 0
Text6.SetFocus
End If
If (KeyAscii = 13) Then
KeyAscii = 0
Text17.SetFocus
End If

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:keypress con set focus

Publicado por qarthadasht (4 intervenciones) el 01/09/2008 10:49:42
El problema que tienes es que el primer if anula totalmente la posibilidad de que entre en el segundo if porque al pulsar ENTER, la pulsación se anula (keyascii=0).

Private Sub Text5_KeyPress(KeyAscii As Integer)
If (KeyAscii = 13) Then
' esta línea anula que puedes entrar en el siguiente IF.
KeyAscii = 0
Text6.SetFocus
End If
If (KeyAscii = 13) Then
KeyAscii = 0
Text17.SetFocus
End If
End Sub

Por otro lado, el control que haces de la pulsación EN CADA UNO DE LOS TEXTBOXES, puede ser mortal de necesidad. Tienes que escribir un montón de código para desplazar el cursor donde quieres.
¿Has probado a hacer una matriz de textboxes?

Pon un textbox en un formulario y cópialo y pégalo varias veces.
Si te pregunta si quieres crear una matriz de controles, dile que sí.
Luego, pega este código.

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
Select Case (KeyAscii)
Case vbKeyReturn
Select Case (Index)
Case 0 ' Al pulsa return en el textbox de indice 0, vas al de índice 1
Text1(1).SetFocus
Case 1 ' Al pulsa return en el textbox de indice 1, vas al de índice 3
Text1(3).SetFocus
Case 3 ' Al pulsa return en el textbox de indice 3, vas al de índice 2
Text1(2).SetFocus
Case Else
' el resto.
End Select
Case Else
' Otras pulsaciones.
End Select
End Sub

La gran ventaja de esta rutina es que el control de TODOS los textboxes se hace en la misma rutina.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:keypress con set focus

Publicado por beatriz (4 intervenciones) el 02/09/2008 00:23:49
GRACIAS.
Pero aún me queda la dificultad para programar el paso con enter cuando de un mismo tex debo pasar a dos opciones, me explico: COMO ES CRUCIGRAMA del text1 (2) paso añl text 1(3) para una palabra vertical, pero para otra horizontal debo pasar al text 1(5) .
trate de programar ENTER para verticales y TAB para horizontales pero el cursor primero se desplaza en vertical y sólo luego lo hace en horizontal

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
Select Case (KeyAscii)
Case vbKeyReturn
Select Case (Index)
Case 2
Text1(3).SetFocus

Case vbKeyTab
Case 2
Text1(5).SetFocus

donde tengo el error

GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar