Il n'y a pas construit dans la propriété ou la fonctionnalité pour garder la trace du précédent contrôle ciblé. Comme vous l'avez mentionné, chaque fois que le bouton est cliqué, il prendra la mise au point. Si vous voulez garder une trace de la zone de texte qui était focalisée avant cela, vous allez devoir le faire vous-même.
Une façon de faire serait d'ajouter une variable au niveau de la classe à votre formulaire qui contient une référence au contrôle de zone de texte se concentre actuellement:
private Control _focusedControl;
Et puis en cas GotFocus
pour chacun de vos contrôles de zone de texte, vous voulez bien mettre à jour la variable _focusedControl
avec cette zone de texte:
private void TextBox_GotFocus(object sender, EventArgs e)
{
_focusedControl = (Control)sender;
}
maintenant, chaque fois qu'un bouton est cliqué (pourquoi utilisez-vous l'événement MouseDown
comme indiqué dans votre question au lieu de la butto ? Événement Click
de n), vous pouvez utiliser la référence au contrôle de la zone de texte précédemment focalisé qui est enregistré dans la variable de niveau classe comme bon vous semble:
private void button1_Click(object sender, EventArgs e)
{
if (_focusedControl != null)
{
//Change the color of the previously-focused textbox
_focusedControl.BackColor = Color.Red;
}
}
bouton peut également se concentrer par la presse Tab. – 26071986