Je suis actuellement en train d'essayer de développer un clavier personnalisé pour l'application WinCE.J'ai actuellement un formulaire avec une zone de texte et un bouton. Le problème est comment puis-je maintenir l'accent sur le clavier lorsque je clique sur la souris à SendInput (pour s'assurer que la zone de texte capture cette entrée). Une façon est de définir la propriété "Focusable" mais je n'arrive pas à la définir sur un Windows Form. J'espère que quelqu'un pourrait m'aider à ce sujet. Merci!Maintien du focus sur la zone de texte pendant que je clique sur différents boutons
Répondre
Vous devez définir TextBox.Focus()
sur le gestionnaire d'événements du bouton presse. Je suppose que le bouton a une fonction KeyPress
ou KeyDown
.
Une alternative plus flexible consisterait à stocker la dernière commande focalisée.
private Control lastFocusedControl;
Et quand la zone de texte se concentre sur elle définit la valeur en utilisant l'événement GotFocus
.
private void TextBox_GotFocus(object sender, EventArgs e)
{
lastFocusedControl = (Control)sender;
}
Ensuite, dans le gestionnaire d'événements, vous pouvez simplement le faire.
lastFocusedControl.Focus();
C'est une façon possible, cependant, je veux rendre ma classe de clavier personnalisée portable, ce qui signifie qu'il peut être utilisé dans toutes les formes de fenêtres que j'ai développées. Donc, si possible, je ne veux pas coder en dur. – Ytan
Bien qu'il soit pour VB.Net il a quelques bonnes idées: http://msdn.microsoft.com/en-us/magazine/hh708756.aspx
Voir WS_EX_NOACTIVATE et
If (m.Msg = WM_MOUSEACTIVATE) Then
m.Result = MA_NOACTIVATE
Else
MyBase.WndProc(m)
End If
Maintenant, le défi est d'adopter ce à votre idée (un processus distinct et formulaire? ou un panneau avec des boutons?). OTOS MS fournit un ensemble d'API SDK clavier personnalisé pour écrire des claviers logiciels personnalisés pour Windows Mobile (c/C++).
C'est une bonne référence, merci. Cependant, je n'arrive pas à trouver OTOS MS, qu'est-ce que cela signifie? Je suis lié à C# pour le développement pour certaines raisons, mais je voudrais toujours vérifier. – Ytan
MS est l'abréviation de Microsoft et l'API et l'exemple dont je parle est le panneau de saisie du logiciel dvorak: http://msdn.microsoft.com/en-us/library/bb158734.aspx – josef
Si vous n'avez pas peur de passer au côté natif, vous pouvez envisager d'implémenter un panneau de saisie logicielle (SIP). Il se comporte de la manière que vous décrivez et peut être utilisé par n'importe quelle application exécutée sur l'appareil. Cette documentation est pour Compact 2013, mais il est également valable pour les versions précédentes (vous pouvez trouver des versions spécifiques à libération sur MSDN, mais ils ont été assez bons en les cachant): http://msdn.microsoft.com/en-us/library/ee500563.aspx
Il existe un contrôle SIP dans WinCE de mon appareil, mais la taille est trop petite. J'ai cherché la possibilité de redimensionner le SIP, et il semble que SetImInfo contrôle la disposition du SIP, donc en invoquant cette méthode, je peux changer la taille de celui-ci dans mon application? Corrigez-moi si je me trompe, merci. – Ytan
Valter recommande de créer un nouveau SIP plus grand répondant à vos besoins, sans modifier celui qui existe. – ctacke
Ah ... je vois. Je suis toujours à la recherche de plusieurs alternatives, car il y a des limites (dans mon entreprise) qui m'empêchent de me développer à ma manière.J'ai examiné ma question dans ce post répondu, mais je pense que les autres suggestions données servent de bon exemple pour le développement de clavier personnalisé pour l'application WinCE, en particulier sur l'ancienne version. – Ytan
- 1. Maintien du focus sur la zone de saisie lorsque l'on clique sur l'icône du clavier virtuel
- 2. focus sur la zone de texte
- 3. Maintien du focus sur un formulaire
- 4. Lorsque je clique sur un bouton, le focus va à la zone de texte
- 5. Comment puis-je conserver le focus sur le texte sélectionné lorsque je clique sur un bouton?
- 6. Impossible de définir le focus sur la zone de texte
- 7. C# perte de focus sur la zone de texte
- 8. Supprimer focus sur la zone de texte dans Ipad
- 9. Je veux que jTextField perde le focus quand je clique sur la fenêtre principale
- 10. IE augmente flou sur focus dans la zone de texte
- 11. focus sur zone de texte sur l'événement de flou angulaire
- 12. Page actualise chaque fois que je clique sur la zone de texte, ne me permet pas de remplir du texte
- 13. Impossible de définir le focus sur la zone de texte
- 14. texte de sélection de zone de texte sur le focus
- 15. Focus sur la zone de texte onload avec mvc?
- 16. zone de texte sur le focus et sur le flou
- 17. WPF: Redéfinir le focus sur la zone de texte
- 18. Supprimer le focus sur la première zone de texte
- 19. jquery Dialog - Focus sur la zone de texte suivante
- 20. Envoyer l'emplacement du fichier à une zone de texte pendant que l'utilisateur clique sur le fichier puis l'application s'exécute
- 21. Comment définir le focus dans une zone de texte lorsque l'utilisateur clique sur un expandeur?
- 22. Ajax Calendrier n'apparaît pas sur la zone de texte focus
- 23. Définition du focus sur un bouton à partir de la zone de texte?
- 24. Détecter Tab Tab événement sur la zone de texte sur le focus
- 25. supprimer le curseur sur le focus zone de texte
- 26. Tableau avec plusieurs boutons - besoin d'obtenir la valeur du bouton que je clique sur php.
- 27. Comment puis-je obtenir quelques jours de retour lorsque je clique sur la zone de texte
- 28. Je veux cacher la zone de texte lorsque je clique sur le côté
- 29. Aide à la mise en forme lorsque l'utilisateur clique sur la zone de texte du formulaire
- 30. Impossible de définir le focus sur une zone de texte
Dans chaque méthode qui relie à un essai de contrôle ' textbox.Focus(); ' – Ben
Toute personne qui a travaillé avec CE saurait immédiatement ce que cette question demande, plus de preuves ne sont pas nécessaires. Ils font l'erreur novice de ne pas créer un SIP réel et l'accent est mis sur eux. C'est une question tout à fait valide dans sa forme actuelle (et pourquoi ne puis-je pas voter pour rouvrir?). – ctacke