2010-08-05 5 views
1

J'ai fait une vue personnalisée dans laquelle j'ai utilisé un champ de recherche qui est une zone de texte pour rechercher le répertoire spécifique. Lorsque nous appuyons sur la touche Entrée dans le champ de recherche, je recherche le répertoire nouveau contenu de diretories. mais le problème est quand je suis dans le dialogue modal alors je ne pourrais pas détecter l'événement de presse de touche d'entrée dans la boîte de recherche bien que je puisse détecter l'autre événement de presse de clé. Quand j'appuyez sur la touche Entrée, il suffit de changer son focus sur la fenêtre de contrôle Edit et il n'exécute pas un événement comme KeyPress/KeyDown etc.Comment détecter Entrer Appuyez sur une touche dans une zone de texte utilisée dans une vue personnalisée.

Toutes les suggestions

Répondre

1

Par défaut est ignoré la touche Entrée par la zone de texte lorsque il s'agit d'un contrôle de ligne unique, car il n'est pas nécessaire qu'il ait une réponse à un événement de touche Entrée. Pour surmonter cela, vous devez créer une nouvelle classe dérivée du TextBox et remplacer la méthode IsInputKey. A l'intérieur, vérifiez si c'est la touche Entrée et renvoyez Vrai. Cela signifie que la clé sera envoyée au contrôle parce que le contrôle veut le traiter. Ensuite, vous pouvez KeyDown pour le TextBox comme prévu.

Questions connexes