texto sobre por pasar mostrar mensaje informacion imagen encima dar cambiar boton c# winforms

c# - sobre - pasar el mouse por la imagen y dar informacion html



C#¿Cómo hago clic en un botón presionando Enter mientras el cuadro de texto tiene foco? (11)

En Visual Studio 2017, usando c #, simplemente agregue el atributo AcceptButton a su botón, en mi ejemplo "btnLogIn":

this.btnLogIn = new System.Windows.Forms.Button(); //....other settings this.AcceptButton = this.btnLogIn;

Estoy trabajando con una aplicación WinForm en C #, después de que escribo algo en un cuadro de texto, quiero presionar la tecla Enter, pero el cuadro de texto aún tiene foco (el cursor parpadeante sigue en el cuadro de texto), ¿cómo puedo lograrlo?


Esto es muy válido para WinForms. Sin embargo, en WPF necesita hacer las cosas de manera diferente, y es más fácil. Establezca la propiedad IsDefault del botón relevante para este área de texto como verdadera.

Una vez que haya terminado de capturar la tecla Intro, no se olvide de alternar las propiedades en consecuencia.


La forma habitual de hacerlo es establecer el botón AcceptButton del AcceptButton en el botón que desea "hacer clic". Puede hacer esto en el diseñador de VS o en el código y el AcceptButton puede cambiarse en cualquier momento.

Esto puede o no ser aplicable a su situación, pero lo he usado junto con los eventos de GotFocus para diferentes TextBox en mi formulario para habilitar un comportamiento diferente según el lugar donde el usuario presiona Enter. Por ejemplo:

void TextBox1_GotFocus(object sender, EventArgs e) { this.AcceptButton = ProcessTextBox1; } void TextBox2_GotFocus(object sender, EventArgs e) { this.AcceptButton = ProcessTextBox2; }

Una cosa a tener cuidado al usar este método es que no deja el conjunto de ProcessTextBox1 TextBox3 en ProcessTextBox1 cuando TextBox3 se enfoca. Recomendaría utilizar el evento LostFocus en los TextBox que configuran AcceptButton , o crear un método GotFocus que controle todos los controles que no usan una llamada AcceptButton específica.


La mayoría de las soluciones para principiantes son: 1. en su Diseñador, haga clic en el campo de texto que desea que esto suceda. En la Ventana de propiedades (por defecto: abajo a la derecha), haga clic en Thunderbolt (Eventos). Este ícono está al lado del ícono de ordenamiento alfabético y el ícono de propiedades.

2. desplácese hacia abajo a keyDown. Haga clic en el campo desplegable que se encuentra a la derecha. Notarás que no hay nada allí, así que simplemente presiona enter. Visual Studio te escribirá el siguiente código:

private void yourNameOfTextbox_KeyDown(object sender, KeyEventArgs e) { }

3. luego simplemente pega esto entre los paréntesis:

if (e.KeyCode == Keys.Enter) { yourNameOfButton.PerformClick(); }

esto actuará como lo hubieras hecho clic.

¡aclamaciones! phil


La opción simple es simplemente configurar el botón Aceptar del formulario al botón que desea presionar (generalmente "OK", etc.):

TextBox tb = new TextBox(); Button btn = new Button { Dock = DockStyle.Bottom }; btn.Click += delegate { Debug.WriteLine("Submit: " + tb.Text); }; Application.Run(new Form { AcceptButton = btn, Controls = { tb, btn } });

Si esto no es una opción, puede mirar el evento KeyDown, etc., pero eso es más trabajo ...

TextBox tb = new TextBox(); Button btn = new Button { Dock = DockStyle.Bottom }; btn.Click += delegate { Debug.WriteLine("Submit: " + tb.Text); }; tb.KeyDown += (sender,args) => { if (args.KeyCode == Keys.Return) { btn.PerformClick(); } }; Application.Run(new Form { Controls = { tb, btn } });


Me encontré con esto mientras buscaba lo mismo, y lo que observo es que ninguna de las respuestas enumeradas en realidad proporciona una solución cuando no desea hacer clic en ''aceptar botón'' en un formulario al presionar enter.

Un caso de uso simple sería un cuadro de búsqueda de texto en una pantalla donde presionar enter debería ''hacer clic'' en el botón ''Buscar'', no ejecutar el comportamiento AcceptButton del formulario.

Este pequeño fragmento hará el truco;

private void textBox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) { if (!textBox.AcceptsReturn) { button1.PerformClick(); } } }

En mi caso, este código es parte de un UserControl personalizado derivado de TextBox, y el control tiene una propiedad ''ClickThisButtonOnEnter''. Pero lo anterior es una solución más general.


O simplemente puede usar este simple código de 2 líneas :)

if (e.KeyCode == Keys.Enter) button1.PerformClick();



Simplemente configure la propiedad " Aceptar botón " del botón al que desea presionar la tecla Entrar. O en evento de carga, escriba this.acceptbutton = btnName;


private void textBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { button.PerformClick(); // these last two lines will stop the beep sound e.SuppressKeyPress = true; e.Handled = true; } }

Enlace este evento KeyDown al cuadro de texto, y luego, cuando presione una tecla, se disparará este evento. Dentro del evento, verificamos si el usuario ha presionado "Enter key", si es así, puede realizar su acción


this.textboxName.KeyDown += (sender, args) => { if (args.KeyCode == Keys.Return) { buttonName.PerformClick(); } };

agregar esto al método de inicialización