2012-04-21 74 views
11

Quiero agregar un par al TextBox para cuando tiene foco. Sé que podría hacer esto con un simple textbox1.Focus y verificar el valor bool ... pero no quiero hacerlo de esa manera.Evento de WinForms para el foco de TextBox?

Así es como me gusta hacerlo:

this.tGID.Focus += new System.EventHandler(this.tGID_Focus); 

No estoy seguro de si manejador de sucesos es la forma correcta de hacer esto, pero sí sé que esto no funciona.

+9

utilizar el evento Enter. –

Respuesta

16

Usted está buscando el evento GotFocus. También hay un evento LostFocus.

textBox1.GotFocus += textBox1_GotFocus; 
+0

Eso es lo que estaba buscando, tyvm. – mawburn

+0

Me alegro de poder ayudar. – lordcheeto

+0

No trabaje en el enfoque con el clic del mouse – Geograph

12
this.tGID.GotFocus += OnFocus; 
this.tGID.LostFocus += OnDefocus; 

private void OnFocus(object sender, EventArgs e) 
{ 
    MessageBox.Show("Got focus."); 
} 

private void OnDefocus(object sender, EventArgs e) 
{ 
    MessageBox.Show("Lost focus."); 
} 

Esto debería hacer lo que quiere y this article describe los diferentes eventos que se llaman y en qué orden. Es posible que vea un mejor evento.

7

me up-votaron comentario de Hans Passant, pero realmente debería ser una respuesta. Estoy trabajando en una UI de Telerik en un entorno 3.5 .NET, y no hay un Evento GotFocus en un RadTextBoxControl. Tuve que usar el evento Enter.

textBox1.Enter += textBox1_Enter; 
+0

De hecho, hay un evento 'GotFocus' para todos los controles, pero no tiene [soporte de diseñador] (http://stackoverflow.com/a/36124027/3110834). Se recomienda usar 'Enter'. –

Cuestiones relacionadas