Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   C#: Como puedo sustituir la tecla TAB por Enter ?? (http://www.forosdelweb.com/f29/c-como-puedo-sustituir-tecla-tab-por-enter-574782/)

ManuelV 10/04/2008 21:04

C#: Como puedo sustituir la tecla TAB por Enter ??
 
Lo que pasa es que para cambiar de un textbox a otro debo hacerlo con TAB.
Como puedo hacerlo para que despues que digite lo necesario en el textbox pueda presionar <Enter> y pasar al otro campo ?

Manuel.

royrojas 11/04/2008 11:53

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
debes identificar la tacla que estan digitando en el control textbox, en tu caso debes identificar que es un enter para asi definir la accion a seguir

aqui esta el ejemplo
http://forosdotnet.com/viewtopic.php...=73&p=200#p200

gnzsoloyo 11/04/2008 13:37

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
Se puede controlar con el evento OnKeyPress()
Cuando el valor de KeyChar es ControlChars.Cr, es que se ha pulsado <Enter> dentro del TextBox

royrojas 11/04/2008 13:40

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
de hecho es el evento KeyDown

If e.KeyCode = Keys.Enter Then
Me.TextBox3.Focus()
End If

ManuelV 11/04/2008 13:56

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
trato de ejecutar esto

private void txtNroPersonas_KeyDown(object sender, KeyEventArgs e)
{
If e = Keys.Enter Then
Me.txtCantidad.Focus()
End If;

}

es como si el then no me lo reconociera.

¿¿??

royrojas 11/04/2008 13:57

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
es asi, te falto ponerle el e.KeyCode

e.KeyCode = Keys.Enter

ManuelV 11/04/2008 14:05

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
Cita:

Iniciado por royrojas (Mensaje 2360109)
es asi, te falto ponerle el e.KeyCode

e.KeyCode = Keys.Enter


aun me persiste el error

private void txtNroPersonas_KeyDown(object sender, KeyEventArgs e)
{
If e.KeyCode = Keys.Enter then
Me.txtCantidad.Focus()
End If;

}

me hace mencion que me faltan los puntos y comas ¿¿???
nota: al escribir por ejemplo then , es como si no me reconociera el comando
me faltara algo en el designer?

manuel

Peterpay 11/04/2008 14:31

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
es c# o vb net

veo una mezcla

si es c#

private void txtNroPersonas_KeyDown(object sender, KeyEventArgs e)
{
If( e.KeyCode = Keys.Enter)
Me.txtCantidad.Focus();

}

ManuelV 11/04/2008 14:38

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
Cita:

Iniciado por Peterpay (Mensaje 2360154)
es c# o vb net

veo una mezcla

si es c#

private void txtNroPersonas_KeyDown(object sender, KeyEventArgs e)
{
If( e.KeyCode = Keys.Enter)
Me.txtCantidad.Focus();

}

ES C#

Peter, al ejecutar me dice que falta el punto y coma despues de If( e.KeyCode = Keys.Enter)
le coloco el punto y coma ==> If( e.KeyCode = Keys.Enter) ;
y despues me salen estos errores

Error 1 El nombre 'If' no existe en el contexto actual C:\Proyectos Visual.NET\GesCas\GesCas\ComandaForm.cs 383 13 GesCas

Error 2 No se puede asignar la propiedad o el indizador 'System.Windows.Forms.KeyEventArgs.KeyCode' (es de sólo lectura) C:\Proyectos Visual.NET\GesCas\GesCas\ComandaForm.cs 383 16 GesCas

Error 3 El nombre 'Me' no existe en el contexto actual C:\Proyectos Visual.NET\GesCas\GesCas\ComandaForm.cs 384 13 GesCas

jlbautista 11/04/2008 14:49

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
en efecto... cuestiones de sintaxis mi estimado ManuelV...
Código:

private void txtNroPersonas_KeyDown(object sender, KeyEventArgs e)
{
  (1)if( e.KeyCode (2)== Keys.Enter) 
  (3)this.txtCantidad.Focus(); //Aunq aqui creo q no tendria pq ir el 'THIS'
}

El código va sin los numeros entre paréntesis... digo, por si solo COPY & PASTE funciona con vos...
Esto solo los puse pa' q sepas como fue el cambio según los errores q te marcaba el compilador

Por aqui andamos

jlbautista 11/04/2008 14:56

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
If (con mayúscula) es VB; if (con menosyúscula, decia El Chavo) es C#
---
= (signo de 'igual') se puede usar pa' comparar en VB; = es ASIGNACION en C#, y para COMPARACION es == ('doble igual')
---
Me (en VB) hace referencia al form y/u Objeto actual (si mal no recuerdo); en C# se usa 'this'

Peterpay 11/04/2008 15:01

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
cierto jlbautista , maldita sintaxis pero con 2 horas de sueño luego se barre

jlbautista 11/04/2008 15:03

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
Cita:

Iniciado por Peterpay (Mensaje 2360201)
sierto jlbautista , maldita sintaxis pero con 2 horas de sueño luego se barre

Jejeje... suele pasar... (Maldito Murphy)
Aqui seguimos... aunq solo un rato, pq POR FIN ES VIERNES !!

Saludos...

ManuelV 11/04/2008 15:39

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
Cita:

Iniciado por jlbautista (Mensaje 2360203)
Jejeje... suele pasar... (Maldito Murphy)
Aqui seguimos... aunq solo un rato, pq POR FIN ES VIERNES !!

Saludos...

estimados ahora no me salen errores, lo malo es que el enter no funciona ..:(
no me salta al campo txtCantidad

private void txtNroPersonas_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
this.txtCantidad.Focus();
}

pense que me podia faltar esto en el designer

this.txtCantidad.KeyDown += new System.Windows.Forms.KeyEventArgs(this.txtCantidad _KeyDown);

pero me sale este error al agregarlo

Error 1 La mejor coincidencia de método sobrecargado para 'System.Windows.Forms.KeyEventArgs.KeyEventArgs(Sy stem.Windows.Forms.Keys)' tiene algunos argumentos no válidos C:\Proyectos Visual.NET\GesCas\GesCas\Form1.Designer.cs 74 38 GesCas

royrojas 11/04/2008 16:29

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
Casi casi...te faltó poco

seria asi.

Código:

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                this.textBox2.Focus();
        }

y en el designer algo asi

Código:

this.textBox1.KeyDown += this.textBox1_KeyDown;

ManuelV 11/04/2008 16:40

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
Cita:

Iniciado por royrojas (Mensaje 2360338)
Casi casi...te faltó poco

seria asi.

Código:

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                this.textBox2.Focus();
        }

y en el designer algo asi

Código:

this.textBox1.KeyDown += this.textBox1_KeyDown;


excelente ..gracias!!! :aplauso::aplauso::aplauso:

ManuelV 11/04/2008 23:38

Re: C#: Como puedo sustituir la tecla TAB por Enter ??
 
la solucion me esta funcionando perfecto...pero porque pasa que cada vez que modifico el formulario se desaparece en el form.designer el codigo:

this.txtProducto.KeyDown += this.txtProducto_KeyDown;

this.txtNroPersonas.KeyDown += this.txtNroPersonas_KeyDown;

manuel

kitzune 21/06/2010 11:44

Respuesta: C#: Como puedo sustituir la tecla TAB por Enter ??
 
Aquí hay una solución interesante, donde no solamente se selecciona un objeto específico sino lo que hace es enviar el select al siguiente objeto de texto
Dice Asi
(esto es en Vb... sin embargo creo que se puede usar con C#)

' Primero creamos la función que será llamada al presionar la tecla enter
' Esta función recibe como parámetro la forma que contiene los campos de texto

Public Sub tab(ByRef forma As Form)
forma.SelectNextControl(CType(forma.ActiveControl, TextBox), True, True, True, False)
End Sub

'El llamado a la función se puede hacer desde el evento KeyPress o KeyDown del TextBox
'En este ejemplo lo llamé en el KeyDown

Private Sub TxtNumDocUsuario_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtNumDocUsuario.KeyDown
If (e.KeyCode = Keys.Enter) Then
tab(Me)
End If
End Sub

Espero que les sirva, lo importante aqui es esta parte del código

forma.SelectNextControl(CType(forma.ActiveControl, TextBox), True, True, True, False)

Donde "forma" es el formulario en el que se está trabajando, si no se hace por función sino directo, entonces puedes reemplazar la palabra "forma" por la palabra "me"

Dudas sobre el tema... me comentan

Cordial Saludo
Ing. Carolina Gallo


La zona horaria es GMT -6. Ahora son las 10:16.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.