Tengo varios cuadros de texto. Me gustaría hacer que el botón Enter actúe como pestaña. Para que cuando esté en un cuadro de texto, al presionar Enter me mueva al siguiente. ¿Podría decirme cómo implementar este enfoque sin agregar ningún código dentro de la clase de cuadro de texto (sin anulación, y así sucesivamente si es posible)?Cómo hacer que Enter en un TextBox actúe como botón TAB
Respuesta
Tomar una suposición:
// on enter event handler
parentForm.GetNextControl().Focus();
Me gustaría combinar lo Pharabus y arul respondieron así:
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == ‘\r’)
{
e.Handled = true;
parentForm.GetNextControl().Focus()
}
}
Déjame saber si esto ayuda! JFV
GetNextControl() toma 2 parámetros ... –
Puede escribir en la keyDown de cualquier control:
if (e.KeyCode == Keys.Enter)
{
if (this.GetNextControl(ActiveControl, true) != null)
{
e.Handled = true;
this.GetNextControl(ActiveControl, true).Focus();
}
}
GetNextControl no funciona en Vista.
para que funcione con Vista, necesitará usar el siguiente código para reemplazar el this.GetNextControl ...:
System.Windows.Forms.SendKeys.Send("{TAB}");
GetNextControl tampoco funciona en Windows 10. Use SendKeys.Send ("{TAB}"). –
No es necesario que haga una "enter gestor de eventos"
Todo lo que necesita hacer es realizar un evento KeyDown "central":
ejemplo
private void General_KeyDown(object sender, KeyPressEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (this.GetNextControl(ActiveControl, true) != null)
{
e.Handled = true;
this.GetNextControl(ActiveControl, true).Focus();
}
}
}
Entonces, todo lo que tiene que hacer es ir al diseñador, seleccione todas las cajas de texto con las que desea pasar EnterKey (selecciónelas manteniendo presionada la tecla Ctrl y haciendo clic en el cuadro de texto con el mouse), luego vaya a Eventos (trueno), busque Keydown y escriba dentro de General_KeyDown. Ahora todos los Textboxes seleccionados tendrán el mismo evento de keydown :) Esto hace que todo sea mucho más fácil, porque imagina un formulario con 100 cuadros de texto y quieres pasar por todos con enter .... haciendo un evento aparte para cada texbox es ... Bueno, no es una forma adecuada de hacer un programa, no es limpio. Espero que haya ayudado !!
cita en bloque
Para aquellos de ustedes que el código en VB ...
Public Class NoReturnTextBox
Inherits System.Windows.Forms.TextBox
Const CARRIAGE_RETURN As Char = Chr(13)
' Trap for return key....
Private Sub NoReturnTextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
If e.KeyChar = CARRIAGE_RETURN Then
e.Handled = True
System.Windows.Forms.SendKeys.Send(vbTab)
End If
End Sub
End Class
Esto funcionó para mí
if (e.Key == Key.Enter)
((TextBox)sender).MoveFocus(new TraversalRequest(new FocusNavigationDirection()));
Sí, pero no necesita convertirlo a 'TextBox'. En vez de lanzarlo a 'UIElement', entonces puedes usar este método en cada control.También debe mencionar que esto solo está disponible en WPF y no en Winforms. – Oliver
@Oliver: +1 por mencionar que solo está disponible para WPF, no para winforms. –
Este es el código que yo suelo usar . Debe estar en el evento KeyDown.
if (e.KeyData == Keys.Enter)
{
e.SuppressKeyPress = true;
SelectNextControl(ActiveControl, true, true, true, true);
}
ACTUALIZACIÓN
otra forma es enviando tecla "TAB"! Y anulando el método, haga que sea más fácil :)
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Enter))
{
SendKeys.Send("{TAB}");
}
return base.ProcessCmdKey(ref msg, keyData);
}
+1 Creo que 'SelectNextControl' es mejor que' GetNextControl' porque esto omitirá automáticamente Label, Panel, GroupBox, PictureBox, ProgressBar, Splitter y LinkLabel. Más información http://msdn.microsoft.com/en-us/library/system.windows.forms.control.selectnextcontrol.aspx –
+1 Porque 'SelectNextControl' hace que la tecla _Enter_ se comporte más como la tecla _Tab_ aquí, ya que también omita los controles donde 'TabStop' se establece en' false', si el tercer argumento se establece en 'true'. –
Si define el Orden de tabulación de todos los controles y crea el Formulario.TeclaDePresentaciónPreliminar = True, sólo se necesita lo siguiente:
Private Sub frmStart_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Enter Then
System.Windows.Forms.SendKeys.Send("{TAB}")
End If
End Sub
Es importante tener en cuenta que si obtendrá un molesto "ding" o advertencia sonará cada vez que el control está esperando un control de botón asociado y no siempre es e.Handled = true
la respuesta para deshacerte del ruido/sonido/ding.
Si el control (es decir, el cuadro de texto de línea única) espera un botón asociado para 'ENTRAR' su entrada, entonces también debe tratar el control 'faltante'.
e.Handled = e.SuppressKeyPress = true;
Esto puede ser útil para deshacerse del sonido 'ding'.
Por lo que vale, en mi circunstancia, mis usuarios necesitaban utilizar la "TECLA INTRODUCIR" cuando estábamos pasando de una aplicación de terminal/pantalla verde a una aplicación de Windows y estaban más acostumbrados a "INGRESAR" mediante campos en lugar de tabbing.
Todos estos métodos funcionaron pero aún mantuvieron el sonido molesto hasta que agregué e.SuppressKeyPress
.
utilizo este código en uno de los cuadro de texto keydown caso
if (e.KeyData == Keys.Enter)
{
e.SuppressKeyPress = true;
SelectNextControl(ActiveControl, true, true, true, true);
}
No puede manejar esta keydown
evento para todos los cuadros de texto en mi forma. Sugiere algo. Gracias
momento de escribir este código en forma de carga, pero no funcionó foreach (cont System.Windows.Forms.Control en this.Controls) { si (cont es TextBox) { cont.KeyDown + = new KeyEventHandler (esto .txtNo_KeyDown); } –
Esta es la solución que utilizo para VB.NET
Establecer Keypreview = True en sus propiedades de formulario.
poner este código en el evento de formulario keydown:
Si (e.KeyData = Keys.Enter) Entonces
'para cualquier control de multilínea, que tiene que salir a dejar de varias líneas' de introducción de texto 'presión de una tecla hace saltos de línea.
If ActiveControl.Name = txtMyMutilineTextBox.Name Then Exit Sub e.SuppressKeyPress = True SelectNextControl(ActiveControl, True, True, True, True)
End If
disfrutar !!!!
Xabier Aberasturi Larruzea
- 1. jQuery cómo hacer que Enter (Return) actúe como tecla Tab a través de los campos de entrada de texto pero al final active el botón Enviar
- 2. WPF Textbox TAB espacios
- 3. ¿Cómo hacer un TextBox con un botón dentro de WPF?
- 4. ¿Cómo hacer que un tipo de entrada = botón actúe como un hipervínculo y lo redirija usando una solicitud get?
- 5. ¿Cómo puedo hacer que un archivo por lotes actúe como un simple grep usando Perl?
- 6. Cómo asociar presionando "enter" con hacer clic en el botón?
- 7. ¿Qué clases utilizo para que un iPhone actúe como servidor?
- 8. Manejo del botón ENTRAR en TextBox, ASP.NET
- 9. ¿Cómo hacer que un botón aparezca como si estuviera presionado?
- 10. Interpretar enter como pestaña WPF
- 11. ¿Cómo hago un menú que no requiera que el usuario presione [enter] para hacer una selección?
- 12. ¿Cómo hacer un autocompletar TextBox en ASP.NET?
- 13. Cómo hacer que el botón como hipervínculo en android
- 14. ¿Cómo hacer que un WPF TextBox use caracteres de contraseña?
- 15. Cómo forzar a "ingresar la clave" para que actúe como "tecla de tabulación" mediante javascript?
- 16. estilo en línea para que actúe como: flotar en CSS
- 17. TextBox causa devolución de botón en ASP.NET
- 18. ¿Cómo hacer que un TextBox acepte solo caracteres alfabéticos?
- 19. ¿Cómo hacer un WPF TextBox PassThrough ApplicationCommands?
- 20. Hacer que la canalización de activos actúe como producción en desarrollo
- 21. firefox autocompletar 'enter' presionar tecla en autocompletar desencadenar enter on textbox
- 22. ¿Cómo hacer que el icono de la aplicación en una vista de búsqueda actúe como un filtro?
- 23. Pulse TAB y luego la tecla ENTER en selenio WebDriver con Ruby
- 24. ¿Cómo hacer que un botón funcione como un enlace en erb?
- 25. ¿Cómo establecer el ancho de TAB en un control TextBox de Windows Forms?
- 26. C#: ¿Cómo hacer que presionar enter en un cuadro de texto active un botón, y aun así permitir el acceso directo a atajos como "Ctrl + A"?
- 27. WPF que aloja un WinForm, Tab. Problemas de navegación
- 28. ¿Cómo hacer que una parte del texto se pueda hacer clic como botón en Android?
- 29. Cómo hacer que la tecla "Enter" en un área de texto envíe un formulario
- 30. Llamar a un botón específico en el evento Click cuando se presiona la tecla enter C#
¿Es esta una web o una aplicación de formas de ganar? – kemiller2002
Esta es una aplicación de Windows Forms –
También soy esta consulta. Gracias por preguntar .. – Sagotharan