Je suis actuellement en train de créer un clavier à l'écran. Je gère le clic de bouton en utilisant les commandes routed. Le problème est que lorsque je clique sur le bouton dans le panneau du clavier, le focus se déplace sur le bouton plutôt que sur la zone de texte. L'exigence stipule qu'un curseur doit toujours apparaître dans la zone de texte pour indiquer la position où le caractère suivant sera inséré. Est-il possible de garder le focus sur la zone de texte lorsque l'on clique sur le bouton.Curseur Focus sur Textbox dans WPF/C#
Répondre
Pour définir le focus logique à un contrôle d'entrée
FocusManager.SetFocusedElement(this, textboxJack); // set logical focus
Pour définir le focus du clavier à un contrôle d'entrée
Keyboard.Focus(textboxJill); // set keyboard focus
Pour connaître la différence entre le focus logique et le clavier
Input Overview - Focus sur MSDN
J'aime ceux-ci do-my-homework -pour moi des questions; "l'exigence stipule" ... inestimable. Pour ceux qui trouvent cela via Google, l'astuce pour déplacer de manière progmatique le curseur dans un TextBox WPF est d'utiliser la propriété SelectioNStart.
private void Button_Click(object sender, RoutedEventArgs e)
{
textBox.Focus();
textBox.SelectionStart = textName.Text.Length;
}
La façon dont je résolu ce problème était de mettre focusable=false
à tous les boutons/commandes du clavier. De cette façon, vous ne perdez pas le focus du contrôle actuel.
Votre problème peut être résolu en utilisant une zone de mise au point séparée pour votre "clavier". Il suffit d'appliquer la propriété suivante au contrôle qui contient tous vos boutons, puis ils seront dans un champ de mise au point séparée et n'aura pas l'accent mis les lorsque vous cliquez dessus
FocusManager.IsFocusScope="True"
Textbox.Focus();
ce se concentrera sur la textbox
Obtenez la référence pour le contrôle spécifique (dans ce cas TextBox). Après avoir cliqué, dans la méthode Button_Click coller ceci:
Dispatcher.BeginInvoke((ThreadStart)delegate
{
control.Focus();
});
pour moi, juste juste que ça fonctionne. Merci... –
je devais l'utiliser pour obtenir mon résultat souhaité
FocusManager.SetFocusedElement(this, UserNameautoCompleteBox);
Key key = Key.Enter; // Key to send
var target = Keyboard.FocusedElement; // Target element
RoutedEvent routedEvent = Keyboard.KeyDownEvent; // Event to send
target.RaiseEvent(
new KeyEventArgs(
Keyboard.PrimaryDevice,
PresentationSource.FromVisual(UserNameautoCompleteBox),
0,
key) { RoutedEvent = routedEvent }
);
Je voulais faire la même chose, mais rien ne semblait fonctionner pour moi. J'avais vraiment besoin d'une réponse qui fonctionne uniquement en XAML pendant que je travaille avec MVVM.
j'ai finalement trouvé cet exemple: http://spin.atomicobject.com/2013/03/06/xaml-wpf-textbox-focus/
et modifia à ceci:
Dans la section 'Ressources':
<Style x:Key="FocusTextBox" TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=textBoxName, Path=IsVisible}" Value="True">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=textBoxName}"/>
</DataTrigger>
</Style.Triggers>
</Style>
Dans ma définition de la grille:
<Grid Style="{StaticResource FocusTextBox}" />
- 1. ListBoxItem sélection sur le focus TextBox
- 2. Problème avec TextBox Focus dans WPF
- 3. validation Textbox, focus Numéro de commutation
- 4. AutoPostback avec TextBox perd le focus
- 5. Trouver la position du curseur dans un TextBox
- 6. WPF TextBox fait défiler automatiquement le curseur dans la vue lorsque la mise
- 7. focus sur la zone de texte
- 8. Dessin sur un TextBox dans .NET Compact Framework
- 9. jquery focus sur l'entrée
- 10. UITextField focus
- 11. WPF Focus Navigation Wrapping
- 12. Set accent sur textbox dans WPF
- 13. Comment puis-je obtenir le numéro de colonne du curseur dans un TextBox en C#?
- 14. Comment désactiver le curseur dans emacs quand emacs n'a pas de focus?
- 15. C# | Comment puis-je sélectionner un mot dans un TextBox par emplacement du curseur?
- 16. Onglet Focus sur erreur (.NET)
- 17. Définir le curseur dans RichTextBox
- 18. TextBox Mouse Double-cliquez sur
- 19. WPF: incorporation de TextBox dans TextBox
- 20. WPF: Impossible de définir le focus
- 21. Définition du focus sur un contrôle dans un ControlTemplate dans WPF
- 22. Comment définir le focus sur un contrôle dans un TreeViewItem lorsqu'il est sélectionné
- 23. WPF Custom TextBox
- 24. Comment puis-je savoir quel TextBox avait le focus en dernier?
- 25. Impossible de laisser le focus sur la même cellule dans DataGridView dans le gestionnaire CellValueChanged (.NET)
- 26. Positionner le curseur dans une MaskedTextbox
- 27. fonction de liaison jQuery sur le focus
- 28. Définition du focus sur un objet MsgBox
- 29. Java - changer de focus sur la touche
- 30. Est-il possible de réinitialiser le curseur au début d'une zone de texte lorsqu'il perd le focus?
Ce n'est pas une question «fais-moi-devoirs-pour-moi». C'est un "Je fais mes devoirs, mais je suis coincé, quelqu'un peut-il me donner quelques indications". –