J'ai un contrôle Onglet et quelques éléments d'onglets. J'écoute avec succès l'événement SelectionChanged
et je vérifie si l'onglet qui m'intéresse est celui actuellement sélectionné. J'utilise ce code (ci-dessous), et en passant par le débogueur, je peux voir que ma logique de branchement fonctionne comme prévu; cependant, le problème que j'ai est que quelque chose est en train de passer outre cet appel à txt.Focus()
car après que l'élément d'onglet correct est affiché, le focus n'est pas sur la zone de texte.WPF TabControl Sur SelectionChanged, définissez le focus sur un champ de texte
private void tabMain_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// exact same behavior with and without this line
e.Handled = true;
if (e.AddedItems.Contains(usrTab))
{
txtusr.Focus();
}
else if (e.AddedItems.Contains(svcTab))
{
txtsvc.Focus();
}
}
Si je viens de mettre txtusr.Focus()
dans un gestionnaire d'événements de bouton, il se concentre exactement comme je pense.
Je soupçonne que cela a à voir avec le contenu de tabitem ne pas être chargé au moment où la méthode .Focus()
est appelée, mais je ne suis pas sûr de savoir comment y remédier.
Avez-vous isolé le problème externe à votre code pour voir s'il est reproductible? Si c'est le cas, il s'agit d'un problème de calendrier/cadre et vous pouvez alors aborder le problème un peu différemment avec cette connaissance en main. –
J'ai été capable de reproduire de façon inconsistante dans un programme de bout. – Nate