2009-06-18 7 views
1

Comment utiliser un contrôle par mot de passe avec un clavier virtuel à l'aide de WPF? Avec le contrôle de la zone de texte, il est assez simple de déplacer le curseur vers la position de texte suivante; pas avec passwordbox, ce qui n'expose pas la position du curseur.wpf passwordbox caret

Dois-je dériver le mien? On dirait une sauce faible.

Répondre

1

Vous pouvez essayer quelque chose comme ceci pour définir la sélection dans le PasswordBox:

private void SetSelection(PasswordBox passwordBox, int start, int length) { 
    passwordBox.GetType().GetMethod("Select", BindingFlags.Instance | BindingFlags.NonPublic) 
         .Invoke(passwordBox, new object[] { start, length }); 
} 

Après cela, appeler comme celui-ci pour régler la position du curseur:

// set the cursor position to 2... or length of the password 
SetSelection(passwordBox1, 2, 0); 

// focus the control to update the selection 
passwordBox1.Focus(); 

La réponse ci-dessus est fournie par Andrew Jackson et cela fonctionne bien.

+0

Comment détermineriez-vous la position actuelle du curseur? –