web-dev-qa-db-fra.com

Événement WinForms pour le focus TextBox?

Je veux ajouter un même à la TextBox pour quand il a le focus. Je sais que je pourrais le faire avec un simple textbox1.Focus et vérifier la valeur booléenne ... mais je ne veux pas le faire de cette façon. 

Voici comment je voudrais le faire:

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

Je ne sais pas si EventHandler est la bonne façon de procéder, mais je sais que cela ne fonctionne pas. 

12
mawburn

Vous recherchez l'événement GotFocus. Il existe également un événement LostFocus.

textBox1.GotFocus += textBox1_GotFocus;
17
lordcheeto
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.");
}

Cela devrait faire ce que vous voulez et cet article décrit les différents événements appelés et dans quel ordre. Vous pourriez voir un meilleur événement.

14
Michael J. Gray

J'ai voté contre le commentaire de Hans Passant, mais cela devrait vraiment être une réponse. Je travaille sur une interface utilisateur Telerik dans un environnement 3.5 .NET et il n'y a pas d'événement GotFocus sur un RadTextBoxControl. Je devais utiliser l'événement Enter.

textBox1.Enter += textBox1_Enter;
7
WEFX

Voici comment vous envelopper et déclarer la fonction de manipulation, basée sur la réponse de Hans. 

namespace MyNameSpace
{
 public partial class Form1 : Form
 {
  public Form1()
  {
   InitializeComponent();
  }

  private void Form1_Load(object sender, EventArgs e)
  {
   txtSchedNum.Enter += new EventHandler(txtSchedNum_Enter);
  }
  protected void txtSchedNum_Enter(Object sender, EventArgs e)
  {
   txtSchedNum.Text = "";
  }
 }
}
0
user3029478